NoCScheduleProblem Class Reference
#include <problem.h>
Detailed Description
NoCScheduleProblem A NoC scheduling problem (single set of messages)
Constructor & Destructor Documentation
NoCScheduleProblem::NoCScheduleProblem | ( | CString | name, | |
CNode * | messagesNode, | |||
CNode * | archGraphNode, | |||
CNode * | systemUsageNode | |||
) |
NoCScheduleProblem () Constructor.
References CGetAttribute(), constructMessages(), interconnectGraph, scheduleName, schedulePeriod, InterconnectGraph::setUsage(), and solvedFlag.
NoCScheduleProblem::~NoCScheduleProblem | ( | ) |
~ScheduleProblem () Destructor.
References interconnectGraph, and messages.
Member Function Documentation
void NoCScheduleProblem::addScheduleSwitchConstraint | ( | NoCScheduleSwitchConstraint & | s | ) | [inline] |
References scheduleSwitchConstraints.
Referenced by SetOfNoCScheduleProblems::SetOfNoCScheduleProblems().
void NoCScheduleProblem::constrainOtherSchedulingProblem | ( | NoCScheduleProblem * | p | ) |
constrainOtherSchedulingProblem () The function marks slots on links of the interconnect graph in the schedule problem p which it uses in its own schedule.
It is possible that the overlap between the schedules contains multiple periods of the source and/or destination schedule.
References _NoCScheduleSwitchConstraint::from, SlotTable::getEndTime(), getInterconnectGraph(), InterconnectGraph::getLink(), Link::getName(), getName(), InterconnectGraph::getSlotTablePeriod(), SlotTable::getStartTime(), SlotTable::getUsedSlotsOfSchedule(), interconnectGraph, isProblemSolved(), InterconnectGraph::linksBegin(), InterconnectGraph::linksEnd(), _NoCScheduleSwitchConstraint::overlap, schedulePeriod, scheduleSwitchConstraints, Link::setUsedSlots(), Link::slotTableSeqBegin(), Link::slotTableSeqEnd(), and _NoCScheduleSwitchConstraint::to.
void NoCScheduleProblem::constructMessages | ( | CNode * | messagesNode, | |
InterconnectGraph * | archGraph | |||
) | [private] |
constructMessages () The function constructs a list of all messages from an XML document.
References CGetAttribute(), CGetChildNode(), CNextNode(), Node::getId(), InterconnectGraph::getNode(), Message::getSeqNr(), Message::getStreamId(), messages, Message::setDstNodeId(), Message::setDuration(), Message::setNextMessageInStream(), Message::setPreviousMessageInStream(), Message::setSeqNr(), Message::setSize(), Message::setSrcNodeId(), Message::setStartTime(), and Message::setStreamId().
Referenced by NoCScheduleProblem().
InterconnectGraph* NoCScheduleProblem::getInterconnectGraph | ( | ) | const [inline] |
References interconnectGraph.
Referenced by constrainOtherSchedulingProblem(), SDFconvertToHTML::convertInterconnectUsage(), SetOfNoCScheduleProblems::createNetworkUsageNode(), NoCScheduler::getInterconnectGraph(), NoCScheduler::markPreferedSlotsOnLinks(), and NoCMapping::updateBandwidthAllocations().
Messages& NoCScheduleProblem::getMessages | ( | ) | [inline] |
References messages.
Referenced by RandomNoCScheduler::putMessagesInRandomOrder(), NoCScheduler::ripupScheduleEntity(), NoCScheduler::ripupStream(), and NoCScheduler::sortMessagesOnCost().
CString NoCScheduleProblem::getName | ( | ) | const [inline] |
References scheduleName.
Referenced by NoCScheduler::assignSchedulingEntities(), constrainOtherSchedulingProblem(), SDFconvertToHTML::convertInterconnectMapping(), SetOfNoCScheduleProblems::createNetworkMappingNode(), NoCScheduler::schedule(), and SetOfNoCScheduleProblems::SetOfNoCScheduleProblems().
bool NoCScheduleProblem::isProblemSolved | ( | ) | const [inline] |
References solvedFlag.
Referenced by constrainOtherSchedulingProblem(), NoCScheduler::markPreferedSlotsOnLinks(), and NoCScheduler::schedule().
void NoCScheduleProblem::markPreferedSlots | ( | InterconnectGraph * | g | ) |
markPreferedSlots () The function marks all slots in all links of the interconnect graph as prefered slots (with the maximal preference level - UINT_MAX) when this slot is used in the corresponding link of the interconnect graph g.
References Link::getId(), InterconnectGraph::getLink(), InterconnectGraph::getSlotTableSize(), interconnectGraph, InterconnectGraph::linksBegin(), InterconnectGraph::linksEnd(), and Link::preferredSlots.
Referenced by NoCScheduler::markPreferedSlotsOnLinks().
MessagesIter NoCScheduleProblem::messagesBegin | ( | ) | [inline] |
References messages.
Referenced by SetOfNoCScheduleProblems::createNetworkMappingNode(), and NoCScheduler::messagesBegin().
MessagesCIter NoCScheduleProblem::messagesBegin | ( | ) | const [inline] |
References messages.
MessagesIter NoCScheduleProblem::messagesEnd | ( | ) | [inline] |
References messages.
Referenced by SetOfNoCScheduleProblems::createNetworkMappingNode(), and NoCScheduler::messagesEnd().
MessagesCIter NoCScheduleProblem::messagesEnd | ( | ) | const [inline] |
References messages.
uint NoCScheduleProblem::nrSchedulingEntities | ( | ) | const [inline] |
References schedulingEntities.
Referenced by NoCScheduler::nrSchedulingEntities().
NoCScheduleSwitchConstraintsIter NoCScheduleProblem::scheduleSwitchConstraintsBegin | ( | ) | [inline] |
References scheduleSwitchConstraints.
Referenced by SDFconvertToHTML::convertInterconnectMapping().
NoCScheduleSwitchConstraintsIter NoCScheduleProblem::scheduleSwitchConstraintsEnd | ( | ) | [inline] |
References scheduleSwitchConstraints.
Referenced by SDFconvertToHTML::convertInterconnectMapping().
NoCSchedulingEntitiesIter NoCScheduleProblem::schedulingEntitiesBegin | ( | ) | [inline] |
References schedulingEntities.
Referenced by NoCScheduler::schedulingEntitiesBegin().
NoCSchedulingEntitiesIter NoCScheduleProblem::schedulingEntitiesEnd | ( | ) | [inline] |
References schedulingEntities.
Referenced by NoCScheduler::schedulingEntitiesEnd().
bool NoCScheduleProblem::setSolvedFlag | ( | bool | flag | ) | [inline] |
Member Data Documentation
Messages NoCScheduleProblem::messages [private] |
Referenced by constructMessages(), getMessages(), messagesBegin(), messagesEnd(), and ~NoCScheduleProblem().
CString NoCScheduleProblem::scheduleName [private] |
Referenced by getName(), and NoCScheduleProblem().
TTime NoCScheduleProblem::schedulePeriod [private] |
Referenced by constrainOtherSchedulingProblem(), and NoCScheduleProblem().
Referenced by nrSchedulingEntities(), schedulingEntitiesBegin(), and schedulingEntitiesEnd().
bool NoCScheduleProblem::solvedFlag [private] |
Referenced by isProblemSolved(), NoCScheduleProblem(), and setSolvedFlag().
The documentation for this class was generated from the following files: