at.dms.kjc.cell
Class GetOrMakeCellChannel

java.lang.Object
  extended by at.dms.kjc.backendSupport.GetOrMakeChannel
      extended by at.dms.kjc.cell.GetOrMakeCellChannel

public class GetOrMakeCellChannel
extends GetOrMakeChannel


Field Summary
 
Fields inherited from class at.dms.kjc.backendSupport.GetOrMakeChannel
backEndBits
 
Constructor Summary
GetOrMakeCellChannel(CellBackendFactory backEndBits)
           
 
Method Summary
 Channel makeInterSliceChannel(InterSliceEdge e)
          Create channel between slices.
 Channel makeIntraSliceChannel(Edge e)
          For an edge within a slice, create a channel that implements that edge.
 
Methods inherited from class at.dms.kjc.backendSupport.GetOrMakeChannel
getOrMakeChannel
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GetOrMakeCellChannel

public GetOrMakeCellChannel(CellBackendFactory backEndBits)
Method Detail

makeInterSliceChannel

public Channel makeInterSliceChannel(InterSliceEdge e)
Description copied from class: GetOrMakeChannel
Create channel between slices. The default version here assumes shared memory, and implements a channel as an array.

A subclass may call super.makeInterSliceChannel(e) if both ends of the channel are laid out on the same ComputeNode and if using an array in the ComputeNode's memory is an appropriate way of communicating. Otherwise a subclass will make a channel of the appropriate type.

Overrides:
makeInterSliceChannel in class GetOrMakeChannel

makeIntraSliceChannel

public Channel makeIntraSliceChannel(Edge e)
Description copied from class: GetOrMakeChannel
For an edge within a slice, create a channel that implements that edge. The provided code assumes that (1) there are no filter->filter edges. (2) That there is never a need to buffer data between a filter and a following splitter (i.e. the inter-slice channels connected to by the splitter will provide any necessary bufferring). If this assumption changes then update this code to handle the case.

This routine may need to be overridden in the case where it is necessary to buffer data off chip between a joiner and a filter or between a filter and a splitter, or in the case where we are not using simple slices and there are filter->filter edges.

Overrides:
makeIntraSliceChannel in class GetOrMakeChannel
Parameters:
e - an Edge
Returns:
a channel that implements the edge or null if no data passes over the edge.