mapss.dif.csdf.sdf.sched
Class TwoNodeStrategy

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

public class TwoNodeStrategy
extends DIFScheduleStrategy

A recursive scheduler for two-node graphs. The recursive method aims at minimal buffer requirement (Absolute Buffer Memory Lower Bound, ABMLB) and minimal procedure code space (i.e. polynomial space cost). However, run time performance is still high (maybe exponential). Because of the minimal buffer result, the schedule is generally of multiple appearances.

The class does NOT provide procedure synthesis. Since the 'two nodes' may be two schedules (with their own loop structures), the synthesis process might generate unexpected results. Therefore, only scheduling results are available in this class.

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

Field Summary
 
Fields inherited from class mapss.dif.DIFScheduleStrategy
_clusterManager
 
Constructor Summary
TwoNodeStrategy(int productionRate, int consumptionRate)
          Constructor for two token exchanging rates.
TwoNodeStrategy(mocgraph.sched.ScheduleElement element1, mocgraph.sched.ScheduleElement element2)
          Constructor for two schedule elements.
TwoNodeStrategy(SDFGraph twoNodeGraph)
          Constructor for a two-node SDF graph.
 
Method Summary
 mocgraph.sched.Schedule schedule()
          Construct the recursive procedural implementation schedule.
 java.lang.String toString()
          A desrciption of the scheduler.
 
Methods inherited from class mapss.dif.DIFScheduleStrategy
getClusterManager, graph, valid
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TwoNodeStrategy

public TwoNodeStrategy(mocgraph.sched.ScheduleElement element1,
                       mocgraph.sched.ScheduleElement element2)
Constructor for two schedule elements. A two-node SDF graph is also built with the given rates.

Parameters:
element1 - The first schedule element.
element2 - The second schedule element.

TwoNodeStrategy

public TwoNodeStrategy(int productionRate,
                       int consumptionRate)
Constructor for two token exchanging rates. A two-node SDF graph is also built with the given rates.

Parameters:
productionRate - The production rate of the only SDF edge.
consumptionRate - The consumption rate of the only SDF edge.

TwoNodeStrategy

public TwoNodeStrategy(SDFGraph twoNodeGraph)
Constructor for a two-node SDF graph.

Parameters:
twoNodeGraph - The given graph.
Method Detail

schedule

public mocgraph.sched.Schedule schedule()
Construct the recursive procedural implementation schedule.

Specified by:
schedule in interface mocgraph.sched.ScheduleAnalyzer
Overrides:
schedule in class DIFScheduleStrategy
Returns:
The recursive procedure schedule.

toString

public java.lang.String toString()
A desrciption of the scheduler.

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