|
|||||||||
| 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.ScheduleAnalyzerschedule 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 | ||||||||