FSMSADF Namespace Reference

Namespaces

namespace  MPExplore
namespace  MPExploreBindingAware
namespace  MPExploreMaxPlusAutomaton
namespace  MPExploreStateSpace

Classes

struct  _MCMedge
struct  _MCMnode
class  MCMgraph
class  ScenarioMatrices
class  GraphConversion
class  EdgeLabeledScenarioFSM
class  MatrixLabeledScenarioFSM
class  FSMConverter
class  Actor
class  Channel
class  GraphComponent
class  FSMstate
class  FSMtransition
class  FSM
class  ScenarioGraph
class  Graph
class  Port
class  Scenario
class  BufferSize
class  StorageDistribution
class  StorageDistributions
class  RandomGraph
class  OutputHTML
class  BindingAwareGraph
class  SDF3Flow
class  MemoryDimAlgo
class  TileBindingAlgo
class  ActorBinding
class  ChannelBinding
class  GraphBinding
class  ConnectionBinding
class  ChannelBindingConstraints
class  ScenarioBindingConstraints
class  GraphBindingConstraints
class  PlatformBinding
class  MemoryBinding
class  NetworkInterfaceBinding
class  ProcessorBinding
class  TileBinding
class  Connection
class  PlatformGraph
class  Memory
class  NetworkInterface
class  Processor
class  Tile
class  EarliestDeadLineFirstScheduling
class  PrecedenceGraph
class  StaticOrderScheduleEntry
class  StaticOrderSchedule
struct  _CPair
class  Settings
class  Tool
class  AnalyzeSettings
class  ToolAnalyze
class  FlowSettings
class  GenerateSettings
class  ToolGenerate
class  TransformSettings
class  ToolTransform

Typedefs

typedef struct FSMSADF::_MCMedge MCMedge
typedef list< MCMedge * > MCMedges
typedef struct FSMSADF::_MCMnode MCMnode
typedef list< MCMnode * > MCMnodes
typedef list< MCMgraph * > MCMgraphs
typedef std::vector< int > RepetitionVector
typedef ::FSM::Labeled::State
< CId, CString
ELSState
typedef ::FSM::Labeled::Edge
< CId, CString
ELSEdge
typedef
::FSM::Labeled::SetOfStates
< CId, CString
ELSSetOfStates
typedef
::FSM::Labeled::SetOfEdges
< CId, CString
ELSSetOfEdges
typedef ::FSM::Labeled::State
< CId, Matrix * > 
MLSState
typedef ::FSM::Labeled::Edge
< CId, Matrix * > 
MLSEdge
typedef
::FSM::Labeled::SetOfStates
< CId, Matrix * > 
MLSSetOfStates
typedef
::FSM::Labeled::SetOfEdges
< CId, Matrix * > 
MLSSetOfEdges
typedef list< Actor * > Actors
typedef list< Channel * > Channels
typedef list< FSMstate * > FSMstates
typedef list< FSMtransition * > FSMtransitions
typedef list< ScenarioGraph * > ScenarioGraphs
typedef map< CString, pair
< Channel *, uint > > 
PersistentTokenMap
typedef uint Rate
typedef list< Port * > Ports
typedef set< Scenario * > Scenarios
typedef double Bandwidth
typedef CFraction Throughput
typedef int Time
typedef uint Size
typedef list< ActorBindingActorBindings
typedef list< ChannelBindingChannelBindings
typedef list< GraphBinding * > GraphBindings
typedef list< ConnectionBinding * > ConnectionBindings
typedef list< PlatformBinding * > PlatformBindings
typedef list< MemoryBinding * > MemoryBindings
typedef list
< NetworkInterfaceBinding * > 
NetworkInterfaceBindings
typedef list< ProcessorBinding * > ProcessorBindings
typedef list< TileBinding * > TileBindings
typedef list< Connection * > Connections
typedef list< PlatformGraph * > PlatformGraphs
typedef list< Memory * > Memories
typedef list< NetworkInterface * > NetworkInterfaces
typedef list< Processor * > Processors
typedef list< Tile * > Tiles
typedef struct FSMSADF::_CPair CPair
typedef list< CPairCPairs
typedef CPairs::iterator CPairsIter

Enumerations

enum  FlowType { FlowTypeNSoC }

Functions

static void calcFractionsConnectedActors (CFractions &fractions, Actor *a, Scenario *s)
static RepetitionVector calcRepetitionVector (CFractions &fractions)
RepetitionVector computeRepetitionVector (ScenarioGraph *g, Scenario *s)
bool isScenarioGraphConsistent (ScenarioGraph *g, Scenario *s)
Throughput throughputAnalysisWithScenarioTransitions (BindingAwareGraph *g)
Throughput computeMCMfsm (FSM *fsm, map< Scenario *, MPTime > &delay, map< Scenario *, MPTime > &period)
Throughput throughputAnalysisUsingRefSchedule (Graph *g)
Throughput computeMCMfsm (FSM *fsm, map< FSMtransition *, MPTime > &delay, map< Scenario *, MPTime > &period)
Throughput throughputAnalysisWithScenarioTransitions (Graph *g)
Throughput throughputAnalysisGraphUsingMaxPlusAutomaton (Graph *g)
map< CString, MaxPlus::VectorcomputeReferenceSchedule (map< Scenario *, MaxPlus::Vector * > &eigenvector)
MaxPlus::VectorgetReferenceScheduleForScenario (Scenario *s, map< CString, MaxPlus::Vector > &v_ref)
Throughput throughputAnalysisGraph (Graph *g)
Throughput throughputAnalysisGraphUsingStateSpace (Graph *g)
void helpMessage (ostream &out)
bool initSettings (int argc, char **argv)
CNodemapApplicationGraphToArchitectureGraph (CNode *sdf3Node, bool outputHTML)
bool mappingFlow (ostream &out)
Settings settings (MODULE, SETTINGS_TYPE)
Scenarios findAllScenariosOfActor (Actor *a)
bool actorSupportProcessorType (Actor *a, CString type)
void unbindThreadToTile (set< Actor * > &actors, ProcessorBinding *pb, MemoryBinding *mb)
bool bindThreadToTile (set< Actor * > &actors, ProcessorBinding *pb, MemoryBinding *mb)
CNodemapApplicationGraphToArchitectureGraph (CNode *sdf3Node, ostream &out)
GraphmodelAutoConcurrencyInGraph (const Graph *g, const uint maxDegree)
GraphtransformToWorstCaseGraph (Graph *g)

Variables

FlowSettings settings (MODULE, SETTINGS_TYPE)

Typedef Documentation

typedef list<Actor*> FSMSADF::Actors
typedef double FSMSADF::Bandwidth
typedef list<Channel*> FSMSADF::Channels
typedef list<CPair> FSMSADF::CPairs
typedef CPairs::iterator FSMSADF::CPairsIter
typedef list<FSMstate*> FSMSADF::FSMstates
typedef list<MCMedge*> FSMSADF::MCMedges
typedef list<MCMgraph*> FSMSADF::MCMgraphs
typedef list<MCMnode*> FSMSADF::MCMnodes
typedef list<Memory*> FSMSADF::Memories
typedef list<Port*> FSMSADF::Ports
typedef std::vector<int> FSMSADF::RepetitionVector

Repetition vector

typedef list<Tile*> FSMSADF::Tiles
typedef int FSMSADF::Time

Enumeration Type Documentation

Enumerator:
FlowTypeNSoC 

Function Documentation

bool FSMSADF::actorSupportProcessorType ( Actor a,
CString  type 
)

actorSupportProcessorType() The function returns true when the actor can be mapped to this processor type

References FSMSADF::Actor::getProcessorTypes().

Referenced by bindThreadToTile().

Here is the call graph for this function:

bool FSMSADF::bindThreadToTile ( set< Actor * > &  actors,
ProcessorBinding pb,
MemoryBinding mb 
)
static void FSMSADF::calcFractionsConnectedActors ( CFractions fractions,
Actor *  a,
Scenario *  s 
) [static]

calcFractionsConnectedActors () The function calculates and firing ration (as fractions) of all actors connected to actor 'a' based on its firing rate. In case of an inconsistent graph, all fractions are set to 0.

References c, FSMSADF::Port::getActor(), FSMSADF::Port::getChannel(), FSMSADF::Channel::getDstPort(), FSMSADF::GraphComponent::getId(), FSMSADF::Actor::getPorts(), FSMSADF::Port::getRateOfScenario(), and FSMSADF::Channel::getSrcPort().

Here is the call graph for this function:

static RepetitionVector FSMSADF::calcRepetitionVector ( CFractions fractions  )  [static]

calcRepetitionVector () Convert the fractions to the smallest integers.

References CFraction::denominator(), g, gcd(), and lcm().

Here is the call graph for this function:

Throughput FSMSADF::computeMCMfsm ( FSM *  fsm,
map< FSMtransition *, MPTime > &  delay,
map< Scenario *, MPTime > &  period 
)

computeMCMfsm() The function returns the MCM of an FSM.

map< CString, MaxPlus::Vector > FSMSADF::computeReferenceSchedule ( map< Scenario *, MaxPlus::Vector * > &  eigenvector  ) 

computeReferenceSchedule() The function computes a reference schedule based on the set of eigenvectors. The reference schedule contains a map of channel names to initial token time stamps.

RepetitionVector FSMSADF::computeRepetitionVector ( ScenarioGraph *  g,
Scenario *  s 
)

computeRepetitionVector () The function computes the repetition vector of a scenario graph for a given scenario.

Referenced by SDFstateSpaceThroughputAnalysis::analyze(), SDFstateSpaceSelfTimedMinimalLatencyAnalysis::analyze(), SDFstateSpaceSelfTimedLatencyAnalysis::analyze(), SDFstateSpaceMinimalLatencyAnalysis::analyze(), analyzeSDFG(), SDFstateSpaceMinimalLatencyAnalysis::analyzeSingleProc(), SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::computeTileUtilization(), distributeInitialTokensInComponent(), SDF3Flow::estimateBandwidthConstraints(), SDF3Flow::estimateLatencyConstraints(), execSDFgraph(), SDFstateSpaceDeadlockAnalysis::TransitionSystem::execSDFgraph(), SDFstateSpaceStaticPeriodicScheduler::TransitionSystem::execSDFgraphComputeSchedule(), findOutputActor(), FSMSADF::StaticOrderSchedule::getIterationLength(), getUbDistributionSz(), MaxPlusAnalysis::GraphDecoration::Graph::Graph(), SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::initOutputActor(), SDFstateSpaceStaticPeriodicSchedulerChao::TransitionSystem::initOutputActor(), SDFstateSpaceStaticPeriodicScheduler::TransitionSystem::initOutputActor(), SDFstateSpaceThroughputAnalysisNingGao::TransitionSystem::initOutputActor(), SDFstateSpaceThroughputAnalysis::TransitionSystem::initOutputActor(), SDFstateSpaceSelfTimedMinimalLatencyAnalysis::TransitionSystem::initOutputActor(), SDFstateSpaceSelfTimedLatencyAnalysis::TransitionSystem::initOutputActor(), SDFstateSpacePriorityListScheduler::TransitionSystem::initOutputActor(), SDFstateSpaceMinimalLatencyAnalysis::TransitionSystem::initOutputActor(), SDFstateSpaceListScheduler::TransitionSystem::initOutputActor(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::initOutputActor(), SDFstateSpaceBufferAnalysisNingGao::TransitionSystem::initOutputActor(), SDFstateSpaceBufferAnalysis::TransitionSystem::initOutputActor(), SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::initOutputActor(), isSDFgraphConsistent(), outputSDFasStateSpaceThroughputModel(), FSMSADF::PrecedenceGraph::PrecedenceGraph(), printMaximumChannelSz(), FSMSADF::OutputHTML::printPlatformBindings(), randomChannelBufferSizes(), LoadBalanceBinding::setAppGraph(), FSMSADF::MPExploreBindingAware::SGraph::SGraph(), FSMSADF::MPExplore::SGraph::SGraph(), stateSpaceAbstractDepGraph(), and transformSDFtoHSDF().

Scenarios FSMSADF::findAllScenariosOfActor ( Actor a  ) 

findAllScenariosOfActor() The function returns the set of scenarios in which the actor appears.

References g, FSMSADF::ScenarioGraph::getGraph(), FSMSADF::Scenario::getScenarioGraph(), FSMSADF::Actor::getScenarioGraph(), and FSMSADF::Graph::getScenarios().

Referenced by bindThreadToTile(), and unbindThreadToTile().

Here is the call graph for this function:

MaxPlus::Vector * FSMSADF::getReferenceScheduleForScenario ( Scenario *  s,
map< CString, MaxPlus::Vector > &  v_ref 
)

getReferenceScheduleForScenario() The function returns the reference schedule for scenario s based on the reference schedule in v_ref.

void FSMSADF::helpMessage ( ostream &  out  ) 

helpMessage () Function prints help message for the tool.

References DOTTED_VERSION, and TOOL.

Referenced by initSettings().

bool FSMSADF::initSettings ( int  argc,
char **  argv 
)

initSettings () The function initializes the program settings.

References FSMSADF::FlowSettings::helpFlag, helpMessage(), FSMSADF::FlowSettings::init(), FSMSADF::FlowSettings::initOutputStream(), and settings.

Referenced by main().

Here is the call graph for this function:

bool FSMSADF::isScenarioGraphConsistent ( ScenarioGraph *  g,
Scenario *  s 
)

isScenarioGraphConsistent () The function checks the consistency of the scenario graph and returns true when the graph is consistent, else it returns false.

CNode* FSMSADF::mapApplicationGraphToArchitectureGraph ( CNode sdf3Node,
ostream &  out 
)
CNode* FSMSADF::mapApplicationGraphToArchitectureGraph ( CNode sdf3Node,
bool  outputHTML 
)
Graph * FSMSADF::modelAutoConcurrencyInGraph ( const Graph g,
const uint  maxDegree 
)

modelAutoConcurrencyInGraph () Create a graph in which the maximum amount of auto-concurrency on all actors in all scenario graphs is made explicit through self-edges.

Referenced by FSMSADF::RandomGraph::assignThroughputConstraint(), and FSMSADF::ToolTransform::transformGraph().

Settings FSMSADF::settings ( MODULE  ,
SETTINGS_TYPE   
)

settings Program settings.

Throughput FSMSADF::throughputAnalysisGraph ( Graph g  ) 

Throughput analysis Compute the throughput of an FSM-based SDAF graph while ignoring the FSM.

Algorithm: 1. Determine for each scenario s the eigenvector v_s and period T_s. 2. Compute a suitable 'reference schedule'. This can be done by for example, taking the max over all eigenvectors. An alternative could be to use the ALAP eigenvector. Currently, the first option is used. 3. Compute the delay for each scenario s using the reference schedule and the period of scenario s. 4. The throughput is equal to max_s (d_s + T_s).

throughputAnalysisGraph() Compute the throughput of an FSM-based SDAF graph while ignoring the FSM.

Referenced by FSMSADF::ToolAnalyze::analyzeGraph().

Throughput FSMSADF::throughputAnalysisGraphUsingMaxPlusAutomaton ( Graph g  ) 

throughputAnalysisGraphUsingMaxPlusAutomaton() Compute the throughput of an FSM-based SDAF graph through a max-plus automaton.

throughputAnalysisGraphUsingStateSpace() Compute the throughput of an FSM-based SDAF graph through a state-space traversal.

Referenced by FSMSADF::ToolAnalyze::analyzeGraph().

Throughput FSMSADF::throughputAnalysisGraphUsingStateSpace ( Graph g  ) 

throughputAnalysisGraphUsingStateSpace() Compute the throughput of an FSM-based SDAF graph through a state-space traversal.

Referenced by FSMSADF::ToolAnalyze::analyzeGraph().

Throughput FSMSADF::throughputAnalysisUsingRefSchedule ( Graph g  ) 

Throughput analysis using reference schedule Compute the throughput of an FSM-based SDAF graph considering the FSM and a reference schedule.

Algorithm: 1. Determine for each scenario s the eigenvector v_s and period T_s. 2. Compute a suitable 'reference schedule'. This can be done by for example, taking the max over all eigenvectors. An alternative could be to use the ALAP eigenvector. Currently, the first option is used. 3. Compute the delay for each scenario s using the reference schedule and the period of scenario s. 4. The throughput is equal to the MCM of the FSM where the weight of a node which corresponds to scenario s is equal to (d_s + T_s).

Throughput analysis using reference schedule Compute the throughput of an FSM-based SDAF graph considering the FSM and a reference schedule.

Referenced by FSMSADF::ToolAnalyze::analyzeGraph().

Throughput FSMSADF::throughputAnalysisWithScenarioTransitions ( BindingAwareGraph *  g  ) 

Throughput analysis considering scenario transitions Compute the throughput of an FSM-based SDAF graph considering the FSM the schedules of each source and destination scenario in the FSM.

Algorithm: 1. Determine for each scenario s the eigenvector v_s and period T_s. 2. The throughput is equal to the MCM of the FSM where the weight of an edge which represents a scenario transition from scenario s to scenario t is equal to: d_st = exploreDelayForSchedule(v_s, v_t, T_t).

Throughput analysis considering scenario transitions Compute the throughput of a binding-aware FSM-based SDAF graph considering the FSM the schedules of each source and destination scenario in the FSM.

Referenced by FSMSADF::ToolAnalyze::analyzeGraph(), and FSMSADF::RandomGraph::assignThroughputConstraint().

Throughput FSMSADF::throughputAnalysisWithScenarioTransitions ( Graph g  ) 

Throughput analysis considering scenario transitions Compute the throughput of an FSM-based SDAF graph considering the FSM the schedules of each source and destination scenario in the FSM.

Algorithm: 1. Determine for each scenario s the eigenvector v_s and period T_s. 2. The throughput is equal to the MCM of the FSM where the weight of an edge which represents a scenario transition from scenario s to scenario t is equal to: d_st = exploreDelayForSchedule(v_s, v_t, T_t).

Throughput analysis considering scenario transitions Compute the throughput of an FSM-based SDAF graph considering the FSM the schedules of each source and destination scenario in the FSM.

Graph * FSMSADF::transformToWorstCaseGraph ( Graph g  ) 

transformToWorstCaseGraph () The function converts the graph to a graph with one scenario which represents the worst-case behavior over all scenarios in the original graph.

transformToWorstCaseGraph () The function converts the graph to a graph with once scenario which represents the worst-case behavior over all scenarios in the original graph.

Referenced by FSMSADF::ToolTransform::transformGraph().

void FSMSADF::unbindThreadToTile ( set< Actor * > &  actors,
ProcessorBinding pb,
MemoryBinding mb 
)

unbindThreadToTile() Remobe binding of the set of actors to the processor and memory in all scenarios in which the actors are used.

References a, findAllScenariosOfActor(), FSMSADF::MemoryBinding::removeActorBinding(), and FSMSADF::ProcessorBinding::removeActorBinding().

Referenced by bindThreadToTile().

Here is the call graph for this function:


Variable Documentation

Settings FSMSADF::settings(MODULE, SETTINGS_TYPE) ( MODULE  ,
SETTINGS_TYPE   
)

settings Program settings.

Referenced by initSettings(), main(), mapApplicationGraphToArchitectureGraph(), and mappingFlow().