CS 670 DV, Spring 2003: Take-Home Midterm

Due Tuesday April 8 at start of class


Please make sure that what you turn in is well formatted and professional (LaTeX STRONGLY prefered, Word is hopeless when it comes to equations, and handwritten/scribbled documents do are not adequate).
  1. Given an SRE, we seek to apply a sequence of CoB transformations, Tau_1, Tau_2, ... Tau_m, to it. Describe precisely the conditions under which the order in which the CoB transformations are applied does not affect the final SRE (i.e., conditions under which the final SRE is the same).
  2. Let the domain of a variable in an SARE be defined by the inequalities (I'm using LaTeX conventions)): 0 \leq k \leq N; 1 \leq i, j \leq N; i, j \leq k+1.
    1. Describe this polyhedron in the constraint representation as well as in the generator (vertices and rays) representation.
    2. What is its image by the transformation (i, j, k -> i+j+2k, j+k, i) in both representations?
    3. What is its pre-image by the transformation (i, j, k -> i+j+2k, j+k, i) in both representations?
    Please show all your work and explain how you got the answer.
  3. Show a complete derivation of a linear architecture for the solution of a lower triangular system of equations, Lx=b. The array should operate in 2N time on N/2 processors with bidirectional data-flow, corresponding to a "clustering" of the 50%-efficency array obtained by the standard non-unimodular space-time CoB. The key point here is to show the complete derivation, showing the equations after each step, until the final equations can be seen to describe the hardware.

    One thing that seems to need some reinforcement is that of generating control signals. In the convolution examples done in class (the standard and the bidirectional ones) I had stopped short of systematically deriving the control signals. In particular, my equations had "conditionals" such as t>p or t=p or even t=2p+N. In a systolic array, each processor cannot be expected to actually compute this, and use it to control a mux. What you need to do is to replace such conditionals by a boolean variable, and write the equations that define the values of these variables. This is exactly like pipelining: replacing a particular "shared" computation by the use of a new variable and making sure that the value is propagated to all the "consumers".


  4. I have presented how the problem of Cholesky factorization of a positive semi-definite matrix may be formulated as an SRE in one of the (see pages 13-15 of these notes). Derive a systolic array for this SRE (make it as efficient as you can). As always, describe each step briefly and show the resulting SRE. Justify your design choices by making a case why the architecture is efficient.

  5. State and prove the necessary and sufficient conditions for multistage null-space pipelining involving two affine (actually linear) dependence functions A_1 and A_2.