FSMSADF::BindingAwareGraph Class Reference
#include <binding_aware_graph.h>
Classes | |
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 > | bindingAwareProperties |
GraphBindingConstraints * | graphBindingConstraints |
Graph * | bindingAwareGraph |
Private Member Functions | |
Scenario * | getScenarioOfScenarioGraph (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().
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().
createMappedActorNSoC () The function models an actor mapped to a processor.
References c, FSMSADF::ScenarioGraph::createChannel(), FSMSADF::Channel::getDstPort(), FSMSADF::Actor::getExecutionTimeOfScenario(), FSMSADF::GraphComponent::getName(), FSMSADF::Actor::getScenarioGraph(), FSMSADF::Channel::getSrcPort(), FSMSADF::Processor::getType(), FSMSADF::Actor::setDefaultProcessorType(), FSMSADF::Actor::setExecutionTimeOfScenario(), FSMSADF::Channel::setInitialTokens(), FSMSADF::GraphComponent::setName(), and FSMSADF::Port::setRateOfScenario().
Referenced by modelBindingInNSoCFlow().
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().
void FSMSADF::BindingAwareGraph::createMappedChannelToTileNSoC | ( | Channel * | c, | |
ChannelBindingConstraints * | bc, | |||
Scenario * | s | |||
) |
createMappedChannelToTileNSoC () The function models a channel mapped to a tile.
References FSMSADF::ScenarioGraph::createChannel(), FSMSADF::ChannelBindingConstraints::getBufferSize(), FSMSADF::Channel::getDstActor(), FSMSADF::Channel::getDstPort(), FSMSADF::Channel::getInitialTokens(), FSMSADF::GraphComponent::getName(), FSMSADF::Port::getRateOfScenario(), FSMSADF::Channel::getScenarioGraph(), FSMSADF::Channel::getSrcActor(), FSMSADF::Channel::getSrcPort(), FSMSADF::BufferSize::Mem, FSMSADF::Channel::setInitialTokens(), FSMSADF::GraphComponent::setName(), and FSMSADF::Port::setRateOfScenario().
Referenced by modelBindingInNSoCFlow().
void FSMSADF::BindingAwareGraph::extractActorMapping | ( | PlatformBinding * | b | ) |
extractActorMapping () The function extracts the actor binding and scheduling from the platform graph.
References a, bindingAwareGraph, bindingAwareProperties, FSMSADF::ScenarioGraph::getActor(), FSMSADF::ProcessorBinding::getActorBindings(), FSMSADF::GraphComponent::getName(), FSMSADF::ProcessorBinding::getProcessor(), FSMSADF::TileBinding::getProcessorBindings(), FSMSADF::Graph::getScenario(), FSMSADF::Scenario::getScenarioGraph(), FSMSADF::ProcessorBinding::getStaticOrderSchedules(), FSMSADF::PlatformBinding::getTileBindings(), and FSMSADF::ProcessorBinding::getWheelsizeAllocations().
Referenced by constructBindingAwareGraph().
void FSMSADF::BindingAwareGraph::extractChannelMapping | ( | PlatformBinding * | b | ) |
extractChannelMapping () The function extracts the channel binding and scheduling from the platform graph.
References bindingAwareGraph, bindingAwareProperties, c, FSMSADF::ScenarioGraph::getChannel(), FSMSADF::ConnectionBinding::getChannelBindings(), FSMSADF::ConnectionBinding::getConnection(), FSMSADF::PlatformBinding::getConnectionBindings(), FSMSADF::GraphComponent::getName(), FSMSADF::Graph::getScenario(), and FSMSADF::Scenario::getScenarioGraph().
Referenced by constructBindingAwareGraph().
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().
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().
void FSMSADF::BindingAwareGraph::modelBindingInNSoCFlow | ( | ) |
modelBindingInNSoCFlow () Model all binding decisions in a graph.
References a, bindingAwareGraph, bindingAwareProperties, c, createMappedActorNSoC(), createMappedChannelToConnectionNSoC(), createMappedChannelToTileNSoC(), FSMSADF::ScenarioGraph::getActors(), FSMSADF::ScenarioGraph::getChannels(), FSMSADF::ScenarioBindingConstraints::getConstraintsOfChannel(), FSMSADF::GraphBindingConstraints::getConstraintsOfScenario(), FSMSADF::Graph::getScenarioGraphs(), getScenarioOfScenarioGraph(), and graphBindingConstraints.
Referenced by constructBindingAwareGraph().
Member Data Documentation
Referenced by constructBindingAwareGraph(), extractGraphBindingConstraints(), and modelBindingInNSoCFlow().
The documentation for this class was generated from the following files: