FSMSADF::BindingAwareGraph Class Reference

#include <binding_aware_graph.h>

Collaboration diagram for FSMSADF::BindingAwareGraph:

List of all members.


class  BindingAwareProperties

Public Member Functions

 BindingAwareGraph (PlatformBinding *b, const FlowType flowType)
 ~BindingAwareGraph ()
void extractActorMapping (PlatformBinding *b)
void extractChannelMapping (PlatformBinding *b)
void extractGraphBindingConstraints (PlatformBinding *b)
void constructBindingAwareGraph (PlatformBinding *b, const FlowType flowType)
void createMappedActorNSoC (Actor *a, Processor *p, Scenario *s)
void createMappedChannelToTileNSoC (Channel *c, ChannelBindingConstraints *bc, Scenario *s)
void createMappedChannelToConnectionNSoC (Channel *c, ChannelBindingConstraints *bc, Connection *co, Scenario *s)
void modelBindingInNSoCFlow ()

Public Attributes

map< ScenarioGraph
*, BindingAwareProperties

Private Member Functions

ScenariogetScenarioOfScenarioGraph (const ScenarioGraph *sg) const

Detailed Description

BindingAwareGraph () Binding-aware Graph.

Constructor & Destructor Documentation

FSMSADF::BindingAwareGraph::BindingAwareGraph ( PlatformBinding b,
const FlowType  flowType 

BindingAwareGraph() Constructor.

References constructBindingAwareGraph().

Here is the call graph for this function:

FSMSADF::BindingAwareGraph::~BindingAwareGraph (  ) 

~BindingAwareGraph() Destructor.

References bindingAwareGraph.

Member Function Documentation

void FSMSADF::BindingAwareGraph::constructBindingAwareGraph ( PlatformBinding b,
const FlowType  flowType 

constructBindingAwareGraph () Create a binding-aware graph for the application graph taking into account the properties of the platform graph and the mapping as specified in the platform binding.

References bindingAwareGraph, FSMSADF::Graph::clone(), extractActorMapping(), extractChannelMapping(), extractGraphBindingConstraints(), FSMSADF::FlowTypeNSoC, FSMSADF::PlatformBinding::getApplicationGraph(), graphBindingConstraints, FSMSADF::Graph::hasIsolatedScenarios(), and modelBindingInNSoCFlow().

Referenced by BindingAwareGraph().

Here is the call graph for this function:

void FSMSADF::BindingAwareGraph::createMappedChannelToConnectionNSoC ( Channel c,
ChannelBindingConstraints bc,
Connection co,
Scenario s 

createMappedChannelToConnectionNSoC () The function models a channel mapped to a connection.

The transformation performed by this function on a channel c with n initial tokens and a buffer size distribution b looks as follows

p c n q s -----------------*---------------> d

| V

c n +------------------*--------------------------+ | | p | p b[src]-n b[dst] q v q +---- s <-----*------+ +------*-------------------- d <------+ | p | p cs | |1 cd q ^ q | | | | | | | | | 1 1| v 1 1 1 1 1 | | | +--------*---> acor ------> acol --> at ------+ | | csr n 1 | ^ 1 crl clt ctd | | | | | | 1 * | | | +-+ | | ca | | n csd 1 1 cdd | +------*-----------------------> ad -------------------------+

Actor ad enforces the minimal delay of channel c to be considered in TDMA allocation. This minimal delay creates scheduling freedom for the interconnect scheduling problem.

Actors acor and acol models the latency and rrate of sending a token through the channel c. This is a latency-rate model of the connection. The assumption is that buffer space is released in the source channel as soon as the data is sent. At this moment, space is claimed at the destination side (i.e. a transmission on the connection may only start when space is available at the destination).

Actor at models the worst-case TDMA timewheel synchronization which may occur when tokens are sent from the source processor to the destination processor.

Channels cs and cd model the source and destination buffer of the channel.

References bindingAwareProperties, FSMSADF::ScenarioGraph::createActor(), FSMSADF::ScenarioGraph::createChannel(), FSMSADF::BufferSize::Dst, FSMSADF::ChannelBindingConstraints::getBandwidth(), FSMSADF::ChannelBindingConstraints::getBufferSize(), FSMSADF::ChannelBindingConstraints::getDelay(), FSMSADF::Channel::getDstActor(), FSMSADF::Channel::getDstPort(), FSMSADF::Channel::getInitialTokens(), FSMSADF::Connection::getLatency(), FSMSADF::GraphComponent::getName(), FSMSADF::Port::getRateOfScenario(), FSMSADF::Channel::getScenarioGraph(), FSMSADF::Channel::getSrcActor(), FSMSADF::Channel::getSrcPort(), FSMSADF::Channel::getTokenSizeOfScenario(), FSMSADF::Processor::getWheelsize(), FSMSADF::Actor::setDefaultProcessorType(), FSMSADF::Actor::setExecutionTimeOfScenario(), FSMSADF::Channel::setInitialTokens(), FSMSADF::GraphComponent::setName(), FSMSADF::Port::setRateOfScenario(), and FSMSADF::BufferSize::Src.

Referenced by modelBindingInNSoCFlow().

Here is the call graph for this function:

void FSMSADF::BindingAwareGraph::extractChannelMapping ( PlatformBinding b  ) 
void FSMSADF::BindingAwareGraph::extractGraphBindingConstraints ( PlatformBinding b  ) 

extractGraphBindingConstraints() Extract the graph binding constraints from the platform binding.

References bindingAwareGraph, FSMSADF::GraphBindingConstraints::clone(), FSMSADF::PlatformBinding::getGraphBindingConstraints(), and graphBindingConstraints.

Referenced by constructBindingAwareGraph().

Here is the call graph for this function:

Scenario * FSMSADF::BindingAwareGraph::getScenarioOfScenarioGraph ( const ScenarioGraph sg  )  const [private]

getScenarioOfScenarioGraph() The function returns the scenario which uses the supplied scenario graph. It is guaranteed that there is only one scenario which uses a scenario graph, since the binding-aware graph uses a graph with isolated scenario.

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

Referenced by modelBindingInNSoCFlow().

Here is the call graph for this function:

Member Data Documentation

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