Writing Parallel Code
6.3.4.1 Fixed-Point Dot Product
Figure 6–1. Dependency Graph of Fixed-Point Dot Product
Instruction
mnemonic
Number of cycles
required to complete
an instruction
6-12
Use the following steps to draw a dependency graph:
1) Define the nodes based on the variables accessed by the instructions.
2) Define the data paths that show the flow of data between nodes.
3) Add the instructions and the latencies.
4) Add the functional units.
Figure 6–1 shows the dependency graph for the fixed-point dot product
assembly instructions shown in Example 6–7 and their corresponding register
allocations.
LDH
ai
Variable
(A2)
being
written
5
.M1
1
The two LDH instructions, which write the values of ai and bi, are parents
of the MPY instruction. It takes five cycles for the parent (LDH) instruction
to complete. Therefore, if LDH is scheduled on cycle i, then its child (MPY)
cannot be scheduled until cycle i + 5.
The MPY instruction, which writes the product pi, is the parent of the ADD
instruction. The MPY instruction takes two cycles to complete.
The ADD instruction adds pi (the result of the MPY) to sum. The output of
the ADD instruction feeds back to become an input on the next iteration
and, thus, creates a loop carry path. (See section 6.7 on page 6-77 for
more information on loop carry paths.)
LDH
bi
.D1
.D1
(A5)
MPY
5
Register
allocation
pi
(A6)
2
ADD
sum
.L1
(A7)
Functional
unit
SUB
1
cntr
.S1
(A1)
1
B
LOOP
.S1
Need help?
Do you have a question about the TMS320C6000 and is the answer not in the manual?
Questions and answers