Pipeline Execution of Instruction Types
6-13
TMS320C67x Pipeline
6.2
Pipeline Execution of Instruction Types
The pipeline operation of the ’C67x instructions can be categorized into four-
teen instruction types. Thirteen of these are shown in Table 6–2 (NOP is not
included in the table), which is a mapping of operations occurring in each
execution phase for the different instruction types. The delay slots and func-
tional unit latency associated with each instruction type are listed in the bottom
row.
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Table 6–2. Execution Stage Length Description for Each Instruction Type
ÁÁÁÁ
ÁÁÁÁ
ÁÁÁ
ÁÁÁ
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Instruction Type
ÁÁÁÁ
ÁÁÁÁ
ÁÁÁ
ÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
Single Cycle
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
16
16 Multiply
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
Store
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
Load
ÁÁÁÁÁ
ÁÁÁÁÁ
Branch
Execution
phases
E1
Compute result
and write to
register
Read operands
and start
computations
Compute
address
Compute
address
Target code
in PG
‡
ÁÁÁÁ
Á
ÁÁ
Á
ÁÁÁÁ
ÁÁÁ
Á
Á
Á
ÁÁÁ
E2
ÁÁÁÁÁÁ
Á
ÁÁÁÁ
Á
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
Á
ÁÁÁÁ
Á
ÁÁÁÁÁÁ
Compute result
and write to
register
ÁÁÁÁÁÁ
Á
ÁÁÁÁ
Á
ÁÁÁÁÁÁ
Send address
and data to
memory
ÁÁÁÁÁÁ
Á
ÁÁÁÁ
Á
ÁÁÁÁÁÁ
Send address to
memory
ÁÁÁÁÁ
Á
ÁÁÁ
Á
ÁÁÁÁÁ
E3
Access memory
Access memory
ÁÁÁÁ
Á
ÁÁ
Á
ÁÁÁÁ
ÁÁÁ
Á
Á
Á
ÁÁÁ
E4
ÁÁÁÁÁÁ
Á
ÁÁÁÁ
Á
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
Á
ÁÁÁÁ
Á
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
Á
ÁÁÁÁ
Á
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
Á
ÁÁÁÁ
Á
ÁÁÁÁÁÁ
Send data back
to CPU
ÁÁÁÁÁ
Á
ÁÁÁ
Á
ÁÁÁÁÁ
E5
Write data into
register
ÁÁÁÁ
ÁÁÁÁ
ÁÁÁ
ÁÁÁ
E6
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁ
ÁÁÁÁÁ
E7
ÁÁÁÁ
ÁÁÁÁ
ÁÁÁ
ÁÁÁ
E8
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁ
ÁÁÁÁÁ
E9
ÁÁÁÁ
ÁÁÁÁ
ÁÁÁ
ÁÁÁ
E10
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁÁ
ÁÁÁÁÁ
Delay slots
0
1
0
†
4
†
5
‡
Functional
unit latency
1
1
1
1
1
† See sections 6.3.7 (page 6-40) and 6.3.8 (page 6-42) for more information on execution and delay slots for stores and loads.
‡ See section 6.3.9 (page 6-44) for more information on branches.
Notes:
1) This table assumes that the condition for each instruction is evaluated as true. If the condition is evaluated as false,
the instruction does not write any results or have any pipeline operation after E1.
2) NOP is not shown and has no operation in any of the execution phases.