Digital Signal Processing Reference
In-Depth Information
to as the base model , and the resulting, dynamically parameterizable form of
the base model is referred to as parameterized XYZ ,where XYZ is the name of
the base model. For example, when parameterized dataflow is applied to SDF
as the base model, the resulting model of computation, called parameterized
synchronous dataflow ( PSDF ), is significantly more flexible than SDF as it allows
arbitrary parameters of SDF graphs to be modified at run-time. Furthermore,
PSDF provides a useful framework for quasi-static scheduling, where fixed-iteration
looped schedules, such as single appearance schedules [ 7 ] , for SDF graphs can be
replaced by parameterized looped schedules [ 6 , 40 ] in which loop iteration counts
are represented as symbolic expressions in terms of variables whose values can
be adapted dynamically through computations that are derived from the enclosing
PSDF specification.
Intuitively, parameterized dataflow allows arbitrary attributes of a dataflow graph
to be parameterized, with each parameter characterized by an associated domain of
admissible values that the parameter can take on at any given time. Graph attributes
that can be parameterized include scalar or vector attributes of individual actors,
such as the coefficients of a finite impulse response filter or the block size associated
with an FFT; edge attributes, such as the delay of an edge or the data type associated
with tokens that are transferred across the edge; and graph attributes, such as those
related to numeric precision, which may be passed down to selected subsets of actors
and edges within the given graph.
The parameterized dataflow representation of a computation involves three
cooperating dataflow graphs, which are referred to as the body graph, the subinit
graph, and the init graph. The body graph typically represents the functional “core”
of the overall computation, while the subinit and init graphs are dedicated to
managing the parameters of the body graph. In particular, each output port of
the subinit graph is associated with a body graph parameter such that data values
produced at the output port are propagated as new parameter values of the associated
parameter. Similarly, output ports of the init graph are associated with parameter
values in the subinit and body graphs.
Changes to body graph parameters, which occur based on new parameter values
computed by the init and subinit graphs, cannot occur at arbitrary points in time.
Instead, once the body graph begins execution it continues uninterrupted through
a graph iteration, where the specific notion of an iteration in this context can be
specified by the user in an application-specific way. For example, in PSDF, the most
natural, general definition for a body graph iteration would be a single SDF iteration
of the body graph, as defined by the SDF repetitions vector [ 31 ] .
However, an iteration of the body graph can also be defined as some constant
number of iterations, for example, the number of iterations required to process a
fixed-size block of input data samples. Furthermore, parameters that define the body
graph iteration can be used to parameterize the body graph or the enclosing PSDF
specification at higher levels of the model hierarchy, and in this way, the processing
that is defined by a graph iteration can itself be dynamically adapted as the
application executes. For example, the duration (or block length) for fixed-parameter
processing may be based on the size of a related sequence of contiguous network
Search WWH ::




Custom Search