The focus of this section is on minimizing the number of registers used in a DSP architecture so that the silicon area due to the registers remains small. Techniques are presented for computing the minimum number of registers and for allocating the data to these registers. Section 6.4 discusses how these techniques can be used to design folded architectures that use the minimum possible number of registers.

Lifetime analysis is a procedure used to compute the minimum number of registers required to implement a DSP algorithm in hardware. A data sample (also called a *variable*) is *live* from the time it is produced through the time it is consumed. After the variable is consumed, it is *dead*. A variable occupies one register during each time unit that it is live. In *lifetime analysis*, the number of live variables at each time unit is computed, and the maximum number of live variables at any time unit is determined [5]. This is the minimum number of registers required to implement the DSP program.

For example, consider a DSP program that produces the 3 variables *a, b,* and *c*. Let the variable *a* be live during time units *n* ∈ {1,2,3,4}, let the variable *b* be live during time units *n* ∈ {2,3,4,5,6,7}, and let the variable *c* be live during time units *n* ∈ {5,6,7}. Assuming that the lifetimes of variables from the previous and subsequent iterations of the program do not overlap with the lifetimes of *a, b,* or *c*, the number of live ...

Start Free Trial

No credit card required