mapss.dif.csdf.sdf.sched
Class DLCStrategy

java.lang.Object
  extended by mapss.dif.DIFScheduleStrategy
      extended by mapss.dif.csdf.sdf.sched.DLCStrategy
All Implemented Interfaces:
mocgraph.analysis.analyzer.Analyzer, mocgraph.analysis.analyzer.GraphAnalyzer, mocgraph.sched.ScheduleAnalyzer

public class DLCStrategy
extends DIFScheduleStrategy

Dynamic Loop Count (DLC) SAS scheduler for SDF graphs. This is a partial implementation of Hyunok Oh's source-DLC SAS scheduling, where delays, cycles are not handled here.

Hyunok Oh, Nikil Dutt, and Soonhoi Ha. "Single Appearance Schedule with Dynamic Loop Count for Minimum Data Buffer from Synchronous Dataflow Graphs", CASES 2005, pages 157-165.

Version:
$Id: DLCStrategy.java 406 2007-05-10 14:27:07Z plishker $
Author:
Mingyung Ko

Field Summary
 
Fields inherited from class mapss.dif.DIFScheduleStrategy
_clusterManager
 
Constructor Summary
DLCStrategy(SDFGraph graph)
          Constructor of an SDFGraph.
 
Method Summary
 java.util.List getTopSort()
          Get the top sort of nodes by Oh's heuristic.
 mocgraph.sched.Schedule schedule()
          Compute a flat schedule for an acyclic SDF graph.
 java.lang.String toString()
          A description of flat scheduler.
 java.lang.String toSynthesisString(java.util.Map nodeNameMap)
          Display the dlcSAS synthesis results.
 boolean valid()
          Acyclic property is validated for flat scheduling.
 
Methods inherited from class mapss.dif.DIFScheduleStrategy
getClusterManager, graph
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DLCStrategy

public DLCStrategy(SDFGraph graph)
Constructor of an SDFGraph.

Parameters:
graph - The given SDF graph.
Method Detail

getTopSort

public java.util.List getTopSort()
Get the top sort of nodes by Oh's heuristic.

Returns:
The top sort.

schedule

public mocgraph.sched.Schedule schedule()
Compute a flat schedule for an acyclic SDF graph. The order is decided by an generic topplogical sorting result.

Specified by:
schedule in interface mocgraph.sched.ScheduleAnalyzer
Overrides:
schedule in class DIFScheduleStrategy
Returns:
A flat SDF schedule.

toSynthesisString

public java.lang.String toSynthesisString(java.util.Map nodeNameMap)
Display the dlcSAS synthesis results.

Parameters:
nodeNameMap - The map from SDF nodes to their names.
Returns:
The dlcSAS synthesis.

toString

public java.lang.String toString()
A description of flat scheduler.

Specified by:
toString in interface mocgraph.analysis.analyzer.Analyzer
Overrides:
toString in class DIFScheduleStrategy
Returns:
A description of flat scheduler.

valid

public boolean valid()
Acyclic property is validated for flat scheduling.

Specified by:
valid in interface mocgraph.analysis.analyzer.Analyzer
Overrides:
valid in class DIFScheduleStrategy
Returns:
True if the graph is acyclic.