Digital Signal Processing Reference
In-Depth Information
Fig. 6
Convolution
(localized, single assignment
version)
-1
-1
y1(n,-
1
1
y1(n,k)=y1(n,k-1)+h1(n,k)*x1(n,k)
h1(n,k)=h1(n-1,k)
x1(n,k)=x1(n-1,k-1)
-1
memory locations to be assigned to these intermediate results by expanding the one
dimensional array
{
y
[
n
]
}
into a two-dimensional array
{
y
1[
n, k
]
}
:
y
[
n
]
→
y
1
[
n
,
k
]
such that
y
1
[
n
,−
1
]=
0
,
y
1
[
n
,
k
]=
y
1
[
n
,
k
−
1
]+
h
1
[
n
,
k
]
x
1
[
n
,
k
]
where the previously localized variables
h
1and
x
1 are used. With above modifica-
3.3
Data Dependence and Dependence Graph
An iteration H(
j
)is
dependent
on iteration H(
i
)ifH(
j
) will read from a memory
location whose value is last written during execution of iteration H(
i
). The corre-
sponding
dependence vector
d
is defined as:
d
=
j
−
i
.
Amatrix
D
consisting of all dependence vectors of an algorithm is called
a
dependence matrix
.This
inter-iteration dependence relation
imposes a partial
vectors can be derived:
n
k
n
k
0
1
;
n
k
n
1
0
;
−
1
d
1
=
−
=
d
2
=
−
=
−
1
k
n
k
n
1
1
−
1
d
3
=
−
=
.
(10)
k
−
1
In the index space, a lattice point whose coordinates fall within the range of the
loop bounds represents the execution of the loop body of the particular loop index
values. The dependence vectors may be represented by directed arcs starting from
the iteration that produces the data to the iteration where the data is needed. Together
with these index points and directed arcs, one has a
dependence graph
(DG)
representing the computation tasks required of a localized RIA. The corresponding
DG of the convolution algorithm is depicted in Fig.
7
for
K
=
5and
N
=
7.