Modulo Iteration Interval Table For Fixed-Point Dot Product (After Software Pipelining) - Texas Instruments TMS320C6000 Programmer's Manual

Hide thumbs Also See for TMS320C6000:
Table of Contents

Advertisement

Table 6–7. Modulo Iteration Interval Table for Fixed-Point Dot Product
(After Software Pipelining)
Unit / Cycle
0
.D1
LDW
.D2
LDW
.M1
.M2
.L1
.L2
.S1
.S2
Note:
The asterisks indicate the iteration of the loop; shading indicates the single-cycle loop.
Loop Prolog
1
2
*
**
LDW
LDW
*
**
LDW
LDW
*
SUB
SUB
B
The rightmost column in Table 6–7 is a single-cycle loop that contains the
entire loop. Cycles 0–6 are loop setup code, or loop prolog.
Asterisks define which iteration of the loop the instruction is executing each
cycle. For example, the rightmost column shows that on any given cycle inside
the loop:
The ADD instructions are adding data for iteration n.
The MPY instructions are multiplying data for iteration n + 2 (**).
The LDW instructions are loading data for iteration n + 7 (*******).
The SUB instruction is executing for iteration n + 6 (******).
The B instruction is executing for iteration n + 5 (*****).
In this case, multiple iterations of the loop execute in parallel in a software pipe-
line that is eight iterations deep, with iterations n through n + 7 executing in par-
allel. Fixed-point software pipelines are rarely deeper than the one created by
this single-cycle loop. As loop sizes grow, the number of iterations that can
execute in parallel tends to become fewer.
Optimizing Assembly Code via Linear Assembly
3
4
***
****
LDW
LDW
***
****
LDW
LDW
MPYH
**
***
SUB
SUB
*
**
B
B
Software Pipelining
5
6
7, 8, 9...
*******
*****
******
LDW
LDW
*******
*****
******
LDW
LDW
*
MPY
MPY
*
MPYH
MPYH
****
*****
SUB
SUB
***
****
B
B
LDW
LDW
**
MPY
**
ADD
ADD
******
SUB
*****
B
6-35

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents