18.4 DATA SCHEDULING

Data scheduling assigns a time index value to any point in the dependence graph of Fig. 18.1. We use an affine scheduling function to specify the scheduling of the algorithm tasks. The affine scheduling functions are of the form [86]

(18.8) c18e008

where s = [s1 s2] is the scheduling vector and s is an integer.

Assigning time values to the nodes of the dependence graph transforms the dependence graph to a directed acyclic graph (DAG) as was discussed in Chapters 10 and 11. More specifically, the DAG can be thought of as a serial–parallel algorithm (SPA) where the parallel tasks could be implemented using a thread pool or parallel processors for software or hardware implementations, respectively. The different stages of the SPA are accomplished using barriers or clocks for software or hardware implementations, respectively.

Our choice for the scheduling vector is determined by any data input/output (I/O) requirements. Since the divisor polynomial is typically of low order, we can store its coefficients in memory and only treat A as an input polynomial supplied by the system generating the data to be compressed. From the figure, it appears that coefficient ai of A is supplied to the dependence graph at the rightmost edge at point

(18.9) c18e009

From Eqs. 18.8 and 18.9, the time index value associated with such point is given by

(18.10) c18e010

Since the time of arrival difference between ai−1 and ai is 1, we can write

(18.11) c18e011

Thus, we must have s1 = 1 in our scheduling function.

We can explore the possible values of s2 by observing that the q input, shown by horizontal lines, is obtained at the left and is used by all the points on the horizontal line. Therefore, time associated with point (i, j) must be larger than or equal to the time value associated with point (i, j + 1). We can write this as

(18.12) c18e012

The above equation yields the inequality

(18.13) c18e013

We have another restriction on the value of s2. The source of data for points on any diagonal lines is the a coefficients that are supplied at the right. Therefore, time associated with point (i, j) must be smaller than or equal to the time value associated with point (i + 1, j + 1). We can write this as

(18.14) c18e014

The above equation yields the inequality

(18.15) c18e015

From the above two inequalities, we deduce that the range for s2 is

(18.16) c18e016

There are three possible choices for our scheduling function:

(18.17) c18e017

(18.18) c18e018

(18.19) c18e019

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
52.15.179.139