at.dms.kjc.spacetime
Class ScheduleModel

java.lang.Object
  extended by at.dms.kjc.spacetime.ScheduleModel

public class ScheduleModel
extends Object

This class models the calculated schedule and layout using the work estimation for each filter of each slice.

Author:
mgordon

Field Summary
static int DRAM_ISSUE_COST
          the cost of issue a read or a write dram command on the tiles assigned to trace enpoints for each trace.
static int GDN_PUSH_COST
          the cost of outputing one item using the gdn versus using the static net for the final filter of a Slice
 
Constructor Summary
ScheduleModel(SpaceTimeSchedule spaceTime, Layout layout, LinkedList<Slice> scheduleOrder)
           
 
Method Summary
 void createModel()
          Calculate the amount of work that is performed by each tile in the steady-state.
 void createModel(boolean debug)
          Calculate the amount of work that is performed by each tile in the steady-state.
 void createModelNoSWPipe()
          The placement cost (energy) of the configuration.
 int getBottleNeckCost()
          Return the work estimate for the entire SS of the tile that performs the most work.
 int getBottleNeckTile()
          Return the tile number of the tile that performs the most work.
 HashSet<RawTile> getBottleneckTiles(double threshold)
          Return the set of tiles that are within threshold of the bottleneck tile.
 int getFilterEnd(FilterSliceNode node)
          Return the time estimate for when this filter is finished executing its entire steady state on the tile to which it is assigned.
 int getFilterStart(FilterSliceNode node)
          Return the time estimate for when this filter will begin executing in the steady state on the tile to which is it assigned.
 int[] getTileCosts()
          Retrieve the array that stores the estimation of the work performed by each tile.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

GDN_PUSH_COST

public static final int GDN_PUSH_COST
the cost of outputing one item using the gdn versus using the static net for the final filter of a Slice

See Also:
Constant Field Values

DRAM_ISSUE_COST

public static final int DRAM_ISSUE_COST
the cost of issue a read or a write dram command on the tiles assigned to trace enpoints for each trace.

See Also:
Constant Field Values
Constructor Detail

ScheduleModel

public ScheduleModel(SpaceTimeSchedule spaceTime,
                     Layout layout,
                     LinkedList<Slice> scheduleOrder)
Method Detail

getTileCosts

public int[] getTileCosts()
Retrieve the array that stores the estimation of the work performed by each tile.

Returns:
the array that stores the estimation of the work performed by each tile.

getFilterStart

public int getFilterStart(FilterSliceNode node)
Return the time estimate for when this filter will begin executing in the steady state on the tile to which is it assigned.

Parameters:
node - The filter.
Returns:
the time estimate for when this filter will begin executing in the steady state on the tile to which is it assigned.

getFilterEnd

public int getFilterEnd(FilterSliceNode node)
Return the time estimate for when this filter is finished executing its entire steady state on the tile to which it is assigned.

Parameters:
node - The node.
Returns:
the time estimate for when this filter is finished executing its entire steady state on the tile to which it is assigned.

getBottleNeckCost

public int getBottleNeckCost()
Return the work estimate for the entire SS of the tile that performs the most work.

Returns:
the work estimate for the entire SS of the tile that performs the most work.

getBottleneckTiles

public HashSet<RawTile> getBottleneckTiles(double threshold)
Return the set of tiles that are within threshold of the bottleneck tile.

Parameters:
threshold - The threshold that defines a bottleneck tile.
Returns:
the set of tiles that are within threshold of the bottleneck tile.

getBottleNeckTile

public int getBottleNeckTile()
Return the tile number of the tile that performs the most work.

Returns:
the tile number of the tile that performs the most work.

createModel

public void createModel()
Calculate the amount of work that is performed by each tile in the steady-state. This calculation will use the work estimation for each filter and will account for pipeline lag inside of a slice.


createModel

public void createModel(boolean debug)
Calculate the amount of work that is performed by each tile in the steady-state. This calculation will use the work estimation for each filter and will account for pipeline lag inside of a slice.


createModelNoSWPipe

public void createModelNoSWPipe()
The placement cost (energy) of the configuration.

Parameters:
debug - Might want to do some debugging...