Пр о ц е с с о р TMS 3 2 0C4 x
163
SUBF3
∗
+AR6,
∗
+AR0, R1
; b - q
(1:T
3
)
ADDF3
∗
AR0,
∗
AR6, R0
; a + p
(1:T
3
)
ADDF3
∗
+AR0,
∗
+AR6, R3
; b + q
(1:T
3
)
MPYF3
R2,
∗
+AR1(IR1), R0
; (a-p)cos
(1:T
3
)
||
STF
R0,
∗
AR0++
; a+p
→
Re(x[k])
MPYF3
R1,
∗
AR1, R3
; (b-q)sin
(1:T
3
)
||
STF
R3,
∗
AR0++
; b+q
→
Im(x[k])
ADDF
R3, R0
; (b-q)sin + (a-p)cos
(1:T
3
)
MPYF3
R2,
∗
AR1, R0
; (a-p)sin
(1:T
3
)
||
STF
R0,
∗
AR6++
; (b-q)sin + (a-p)cos
→
Re(x[k+R])
MPYF3
R1,
∗
+AR1(IR1),R3
; (b-q)cos
(1:T
3
)
SUBF
R0, R3
; (b-q)cos - (a-p)sin
(1:T
3
)
STF
R3,
∗
AR6++
; (b-q)cos - (a-p)sin
→
Im(x[k+R])
(1:T
3
)
;
T
3
= 11
B_LOOP ADDIR8, AR1
;
T
3
′
= 1
(1:T
3
′
)
∗
end of butterfly loop
;
конец цикла по “бабочкам”
DBD
AR2, G_LOOP
;
(1:T
2
′
)
ADDIIR0, AR4
;
(1:T
2
′
)
ADDIIR0, AR4
;
(1:T
2
′
)
NOP
;
конец цикла по группам
T
2
′
= 4
(1:T
2
′
)
ASH
1, R8
;
(1:T
1
′
)
DBD
AR7, S_LOOP
;
(1:T
1
′
)
LDI
R9, IR0
; IR0 = R9
(1:T
1
′
)
ASH
-1, R9
; R9 = R9/2
(1:T
1
′
)
LDI
AR5, AR4
;
конец цикла по ступеням
T
1
′
= 5
(1:T
1
′
)
NOP
.end
;
теоретический расчет времени выполнения БПФ
; Грубый расчет:
;
T
БПФ
= 1.3
∗
(T
3
+ T
3
′
)(log
2
N)N/2 = 1.3
⋅
12
⋅
6
⋅
32 = 2995
; Точный расчет:
;
T
БПФ
= T
0
+ log
2
N (T
1
+T
1
′
) + (N-1)(T
2
+T
2
′
) + (log
2
N)(N/2)(T
3
+T
3
′
) =
; = 11 + 6
⋅
6 + 63
⋅
11 + 6
⋅
32
⋅
12 = 11 + 36 + 693 +2304 = 3044
; (время, измеренное в симуляторе, составляет 3048 циклов)