#include <nocmapping.h>

Collaboration diagram for NoCMapping:

List of all members.

Public Member Functions

 NoCMapping (NoCScheduler *schedulingAlgo, SDFflowType type)
 ~NoCMapping ()
bool extractCommunicationConstraints ()
bool scheduleCommunication ()
bool updateBandwidthAllocations ()
void init (TimedSDFgraph *app, PlatformGraph *platform, CNode *archGraph, CNode *systemUsage)
CNodegetMessages ()
SetOfNoCScheduleProblemsgetSetOfNoCScheduleProblems () const
CNodecreateNetworkNode ()
CNodecreateMappingNode ()
CNodecreateUsageNode ()
CNodeaddUsageNode (CNode *systemUsageNode)
uint getSlotTableSize ()
SDFflowType getFlowType () const

Private Member Functions

TimedSDFgraphgetAppGraph ()
void setAppGraph (TimedSDFgraph *g)
PlatformGraphgetPlatformGraph ()
void setPlatformGraph (PlatformGraph *g)
CNodegetNetworkNode ()

Private Attributes

SDFflowType flowType
NoCSchedulerschedulingAlgo
CNodexmlMessagesSet
SetOfNoCScheduleProblemsscheduleProblems
TimedSDFgraphappGraph
PlatformGraphplatformGraph
CNodexmlArchGraph
CNodexmlSystemUsage
double * occupiedInBandwidthTile
double * occupiedOutBandwidthTile

Detailed Description

NoCMapping Container class NoC-based interconnect scheduling.


Constructor & Destructor Documentation

NoCMapping::~NoCMapping (  ) 

~NoCMapping () Destructor.

References occupiedInBandwidthTile, occupiedOutBandwidthTile, and scheduleProblems.


Member Function Documentation

CNode * NoCMapping::addUsageNode ( CNode systemUsageNode  ) 

addUsageNode () Create an XML node which describes the usage of the links in the interconnect. This node is added to the systemUsageNode supplied to the function. The systemUsageNode is also returned by the function. The function also updates the used incoming and outgoing bandwidth of the NIs inside the tiles based on the communication schedule.

References CAddNode(), CGetAttribute(), CGetChildNode(), CNextNode(), createUsageNode(), CSetAttribute(), ArchComponent::getId(), PlatformGraph::getTile(), occupiedInBandwidthTile, occupiedOutBandwidthTile, and platformGraph.

Referenced by SDF3Flow::createSDF3Node().

Here is the call graph for this function:

CNode * NoCMapping::createMappingNode (  ) 

createMappingNode () Create an XML node which describes the mapping of messages send over the interconnect to the resources in the interconnect.

References SetOfNoCScheduleProblems::createNetworkMappingNode(), SetOfNoCScheduleProblems::nrScheduleProblems(), and scheduleProblems.

Referenced by SDF3Flow::createSDF3Node().

Here is the call graph for this function:

CNode * NoCMapping::createNetworkNode (  ) 

createNetworkNode () Create an XML node which describes the structure of the interconnect graph.

References InterconnectGraph::createInterconnectGraphNode(), g, getFlowType(), SDFflowTypeMPFlow, and xmlArchGraph.

Referenced by SDF3Flow::createSDF3Node().

Here is the call graph for this function:

CNode * NoCMapping::createUsageNode (  ) 

createUsageNode () Create an XML node which describes the usage of the links in the interconnect.

References SetOfNoCScheduleProblems::createNetworkUsageNode(), SetOfNoCScheduleProblems::nrScheduleProblems(), and scheduleProblems.

Referenced by addUsageNode().

Here is the call graph for this function:

bool NoCMapping::extractCommunicationConstraints (  ) 

extractCommunicationConstraints () Extract communication scheduling problem from the bound and scheduled application SDFG.

References CRemoveNode(), getAppGraph(), getFlowType(), getPlatformGraph(), getSlotTableSize(), SDFstateSpaceTraceInterconnectCommunication::trace(), and xmlMessagesSet.

Referenced by SDF3Flow::extractCommunicationConstraints().

Here is the call graph for this function:

TimedSDFgraph* NoCMapping::getAppGraph (  )  [inline, private]

References appGraph.

Referenced by extractCommunicationConstraints().

SDFflowType NoCMapping::getFlowType (  )  const [inline]
CNode* NoCMapping::getMessages (  )  [inline]

References xmlMessagesSet.

Referenced by SDF3Flow::createSDF3Node().

CNode * NoCMapping::getNetworkNode (  )  [private]

getNetworkNode () The function return the network node from the XML architecture description.

References CGetChildNode(), CHasChildNode(), and xmlArchGraph.

Referenced by getSlotTableSize().

Here is the call graph for this function:

PlatformGraph* NoCMapping::getPlatformGraph (  )  [inline, private]
SetOfNoCScheduleProblems* NoCMapping::getSetOfNoCScheduleProblems (  )  const [inline]
uint NoCMapping::getSlotTableSize (  ) 

getSlotTableSize () The function returns the slot-table size used in the NoC.

References CGetAttribute(), CHasAttribute(), and getNetworkNode().

Referenced by extractCommunicationConstraints().

Here is the call graph for this function:

void NoCMapping::init ( TimedSDFgraph app,
PlatformGraph platform,
CNode archGraph,
CNode systemUsage 
)

init () The function initializes all data structures required for the NoC mapping. This function must be called prior to any of the actual NoC mapping functions.

References setAppGraph(), setPlatformGraph(), xmlArchGraph, and xmlSystemUsage.

Referenced by SDF3Flow::checkInputDesignFlow().

Here is the call graph for this function:

bool NoCMapping::scheduleCommunication (  ) 

scheduleCommunication () The function tries to find a valid scheduling function for the scheduling problem.

References SetOfNoCScheduleProblems::clear(), NoCScheduler::schedule(), scheduleProblems, schedulingAlgo, xmlArchGraph, xmlMessagesSet, and xmlSystemUsage.

Referenced by SDF3Flow::scheduleCommunication().

Here is the call graph for this function:

void NoCMapping::setAppGraph ( TimedSDFgraph g  )  [inline, private]

References appGraph.

Referenced by init().

void NoCMapping::setPlatformGraph ( PlatformGraph g  )  [inline, private]

References platformGraph.

Referenced by init().


Member Data Documentation


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