|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectmapss.dif.DIFScheduleStrategy
mapss.dif.csdf.sdf.sched.MCBStrategy
public class MCBStrategy
A base scheduler using multirate cycle breaking framework. The scheduler computes a schedule by removing qualified graph edges in a hope to make it acyclic. Efficient acyclic schedulers can be applied then.
In this class, _cycleBreaking(SDFGraph)
,
_acyclicScheduling(SDFGraph, int)
,
_tightScheduling(SDFGraph, int)
, and
_computeSchedule(SDFGraph, int)
are to be refined according to
a specific algorithm. This base class implements edge removal
with largest normalized delays (delay / TNSE). Generic
topological sorting is implemented in acyclic scheduling while
nothing is currently done in tight scheduling.
Constructor Summary | |
---|---|
MCBStrategy(SDFGraph graph)
Constructor for a given SDF graph. |
Method Summary | |
---|---|
protected mocgraph.sched.ScheduleElement |
_acyclicScheduling(SDFGraph graph,
int graphRepetitions)
Acyclic scheduling for the given graph. |
protected mocgraph.sched.ScheduleElement |
_computeSchedule(SDFGraph graph,
int graphRepetitions)
Compute the schedule for the given SDF graph. |
protected java.util.Collection |
_cycleBreaking(SDFGraph graph)
Cycle breaking rule for the graph. |
protected boolean |
_isTight(SDFGraph graph)
Test the graph's tight inter-dependency. |
protected void |
_putBackEdges(SDFGraph graph)
Edges to put back into graph. |
protected void |
_removeEdges(SDFGraph graph,
java.util.Collection edgeCollection)
Remove edges from the given graph. |
protected mocgraph.sched.ScheduleElement |
_tightScheduling(SDFGraph graph,
int graphRepetitions)
Tight scheduling for the given graph. |
mocgraph.sched.Schedule |
schedule()
Compute the multirate cycle breaking schedule. |
Methods inherited from class mapss.dif.DIFScheduleStrategy |
---|
getClusterManager, graph, toString, valid |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public MCBStrategy(SDFGraph graph)
graph
- The given SDF graph.Method Detail |
---|
public mocgraph.sched.Schedule schedule()
schedule
in interface mocgraph.sched.ScheduleAnalyzer
schedule
in class DIFScheduleStrategy
protected mocgraph.sched.ScheduleElement _acyclicScheduling(SDFGraph graph, int graphRepetitions)
The implementation is just a generic topologically sorted and linear schedule. Users can refine this method.
graph
- The given graph in SDFGraph
.graphRepetitions
- Repetitions for the given graph.
protected mocgraph.sched.ScheduleElement _computeSchedule(SDFGraph graph, int graphRepetitions)
graph
- The given graph.graphRepetitions
- Repetitions for the given graph.
protected java.util.Collection _cycleBreaking(SDFGraph graph)
_removeEdges(SDFGraph, Collection)
.
The implementation here is to select the edge with largest normalized delays (delay / TNSE). However, users can redefine this method.
graph
- The given SDFGraph
to break cycles.
protected boolean _isTight(SDFGraph graph)
protected void _putBackEdges(SDFGraph graph)
graph
- The given SDFGraph
.edges
- The edges to put back.protected void _removeEdges(SDFGraph graph, java.util.Collection edgeCollection)
_removedEdgesMap
for possibe
future putting back.
graph
- The given SDFGraph
.edgeCollection
- The edges to remove.protected mocgraph.sched.ScheduleElement _tightScheduling(SDFGraph graph, int graphRepetitions)
FIXME: There is no implementation so far and users should define this method.
graph
- The given SDFGraph
.graphRepetitions
- Repetitions for the given graph.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |