Freezes in Pipeline Activity
4-11
Pipeline
One time that an instruction-not-available condition will occur is when the first
instruction after a discontinuity is at an odd address and has 32 bits. A
discontinuity
is a break in sequential program flow, generally caused by a
branch, a call, a return, or an interrupt. When a discontinuity occurs, the
instruction-fetch queue is emptied, and the CPU branches to a specified
address. If the specified address is an odd address, a 16-bit fetch is performed
at the odd address, followed by 32-bit fetches at subsequent even addresses.
Thus, if the first instruction after a discontinuity is at an odd address and has
32 bits, two fetches are required to get the entire instruction. The D2
−
W hard-
ware ceases until the instruction is ready to enter the D2 phase.
To avoid the delay where possible, you can begin each block of code with one
or two (preferably two) 16-bit instructions:
FunctionA:
16-bit instruction
; First instruction
16-bit instruction
; Second instruction
32-bit instruction
; 32-bit instructions can start here
.
.
.
If you choose to use a 32-bit instruction as the first instruction of a function or
subroutine, you can prevent a pipeline delay only by making sure the instruc-
tion begins at an even address.
Содержание TMS320C28x
Страница 30: ...1 12...
Страница 80: ...This page intentionally left blank 2 50 This page intentionally left blank...
Страница 269: ...IN loc16 PA 6 112 MOV AL 0 AL 0 UOUT IORegC AL IOspace IORegC AL 10...
Страница 308: ...MAXCUL P loc32 6 151 Saturate MOVL Var64 2 ACC Store result into Var64 MOVL Var64 P...
Страница 509: ...SUBL ACC P PM 6 352 SUBL ACC P PM ACC S B 11 M X 4 MOVH Y ACC 5 Store Q15 result into Y...
Страница 585: ...This page intentionally left blank 7 32 This page intentionally left blank...