mapss.dif.csdf.sdf.sched
Class BDPPOStrategy

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

public class BDPPOStrategy
extends DPPOStrategy

This is a DPPO for balancing capacity over a dual-memory-bank architecture.

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

Field Summary
 
Fields inherited from class mapss.dif.csdf.sdf.sched.DPPOStrategy
_lexicalOrder, _tableDimension
 
Fields inherited from class mapss.dif.DIFScheduleStrategy
_clusterManager
 
Constructor Summary
BDPPOStrategy(SDFGraph graph, java.util.List lexicalOrder, double gap, java.util.Collection edges1, java.util.Collection edges2)
          Constructor for an SDF graph, a lexical order, a preliminary capacity gap, and two collections of edges.
 
Method Summary
protected  void _optimumFor(int left, int right)
          Compute the minimum cost for the node sequence from 'left' to 'right'.
 double capacityDifference()
          Get the optimal bank capacity difference.
 java.lang.String toString()
          A desrciption of the scheduler.
 
Methods inherited from class mapss.dif.csdf.sdf.sched.DPPOStrategy
_bufferCost, _computeDPPO, _computeSchedule, _crossingSDFEdges, _DPPOTableElement, _SDFEdges, _SDFNodes, _verifyIndices, _verifyIndices, optimalCost, schedule, setLexicalOrder
 
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

BDPPOStrategy

public BDPPOStrategy(SDFGraph graph,
                     java.util.List lexicalOrder,
                     double gap,
                     java.util.Collection edges1,
                     java.util.Collection edges2)
Constructor for an SDF graph, a lexical order, a preliminary capacity gap, and two collections of edges. Collections of edges imply the bank assignment for SDF buffers. The gap must be the first bank capacity minus the second one.

Parameters:
graph - The given SDF graph.
lexicalOrder - The lexical order.
gap - The preliminary capacity difference.
edges1 - SDF edges associated with the first bank.
edges2 - SDF edges associated with the second bank.
Method Detail

capacityDifference

public double capacityDifference()
Get the optimal bank capacity difference. The difference is the first bank's capacity minus the second one's.

Returns:
The difference.

toString

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

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

_optimumFor

protected void _optimumFor(int left,
                           int right)
Compute the minimum cost for the node sequence from 'left' to 'right'. Also set up appropriate fields of the entry at (left, right)

Specified by:
_optimumFor in class DPPOStrategy
Parameters:
left - Lexical ordering index of the leftmost node.
right - Lexical ordering index of the rightmost node.