Performance Considerations

4.4.2Multicycle NOPs

The NOP instruction has an optional operand, count, that allows you to issue a single instruction for multicycle NOPs. A NOP 2, for example, fills in extra delay slots for the instructions in its execute packet and for all previous execute packets. If a NOP 2 is in parallel with an MPY instruction, the MPY results is available for use by instructions in the next execute packet.

Figure 4−29 shows how a multicycle NOP can drive the execution of other instructions in the same execute packet. Figure 4−29(a) shows a NOP in an execute packet (in parallel) with other code. The results of the LD, ADD, and MPY is available during the proper cycle for each instruction. Hence NOP has no effect on the execute packet.

Figure 4−29(b) shows the replacement of the single-cycle NOP with a multi- cycle NOP (NOP 5) in the same execute packet. The NOP 5 causes no opera- tion to perform other than the operations from the instructions inside its execute packet. The results of the LD, ADD, and MPY cannot be used by any other instructions until the NOP 5 period has completed.

Figure 4−29. Multicycle NOP in an Execute Packet

(a)

 

 

 

 

 

Cycle

Execute packet

LD

ADD

MPY

NOP

i

 

 

 

 

Can use ADD results

i + 1

 

 

 

 

Can use MPY results

i + 2

 

 

 

 

 

 

i + 3

 

 

 

 

 

 

i + 4

 

 

Can use LD result

 

i + 5

 

 

 

 

 

 

Cycle

(b)

Execute packet

LD

ADD

MPY NOP 5

i

 

 

 

 

 

 

 

i + 1

 

 

 

 

 

 

i + 2

 

 

 

 

 

 

i + 3

 

 

 

 

 

 

i + 4

 

 

 

All values available on i + 5

i + 5

4-58

Pipeline

SPRU733

Page 390
Image 390
Texas Instruments TMS320C67X/C67X+ DSP manual Multicycle NOPs, 29. Multicycle NOP in an Execute Packet