at.dms.kjc.cell
Class GetOrMakeCellChannel
java.lang.Object
at.dms.kjc.backendSupport.GetOrMakeChannel
at.dms.kjc.cell.GetOrMakeCellChannel
public class GetOrMakeCellChannel
- extends GetOrMakeChannel
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
GetOrMakeCellChannel
public GetOrMakeCellChannel(CellBackendFactory backEndBits)
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.