Figure 2-1 The Fast Normalization Operation For The Dsp56300 - Motorola DSP56600 Manual

Application optimization for digital signal processors
Table of Contents

Advertisement

will normalize A, so that in the DSP56300 it's leading one or zero
will be shifted to Bit 46 in the accumulator. If |A| > 1 (meaning that
it spilled to the extension A2), then CLB returns a positive number
(between 1 and 8). If |A| < 1, CLB returns a zero or a negative
number (between –47 and 0). The two cases in Figure 2-1 exemplify
the normalization operation for the DSP56300. The NORMF at the
56600 core operates similarly, with adjustments to the different
accumulator length.
A
CLB
A,B
B
NORMF
B1,A
A 00 601000 008000

Figure 2-1 The Fast Normalization Operation for the DSP56300:

The NORMF instruction can be used to keep data dynamically
bounded (maximizing calculation accuracy), implement floating
point routines, normalizing data blocks, and more. For example,
consider the following routine for efficiently normalizing a data
block. The first pass finds the normalization factor (using MAXM
and CLB) and the second pass performed the normalization itself.
;NORMALIZING A DATA BLOCK
;=========================
;X:base - base address of un-normalized data.
;Y:base - base address of normalized data.
;N: data block size
move
move
clr b
rep
maxm
move
clb
MOTOROLA
Optimizing DSP56300/DSP56600 Applications
55
47
23
0
0c 020000 100000
55
47
23
0
00 000005 000000
55
47
23
0
#base,r0
#base,r1
x:(r0)+,a
#N
a,b
x:(r0)+,a
r1,r0
b,a
55
47
23
A
00 00c000 003000
55
47
23
B
ff
fffff9
000000
55
47
23
A
00 600000 180000
;cycle count
; 1
; 1
; 1 + 2 pointer interlock
; 5
; 1 x N
; 1
; 1
Data Operations
Using the barrel shifter
0
0
0
AA0831
2-9

Advertisement

Table of Contents
loading

This manual is also suitable for:

Dsp56300

Table of Contents