Digital Signal Processing Reference
In-Depth Information
expected when operands are fetched directly from the memory and with the aid of
efficient addressing mechanisms. In addition, modern processors contain general-
purpose registers and the number of registers is higher reducing the need for storing
local data to memory.
As discussed in previous section, the width of accumulators and registers is
often greater than the full precision result of multiplication as the additional bits
(guard bits) in the most significant part provide headroom against an overflow when
accumulating several products. Finally, several registers can be used as a combined
extended precision register. For example, in Freescale DSP56300 in Fig. 2 , 24-bit
registers X1 and X2 can be used together as a 48-bit register. Arithmetic operations
with extended precision can be performed by exploiting signed and unsigned
versions of native add and multiply instructions and the final 96-bit result can be
stored to accumulators A and B.
In general-purpose DSP processors, the trend has been towards larger number of
general-purpose registers; e.g., TMS320C64x processors contain two register files,
which each contain 32 registers as illustrated in Fig. 3 . These 32-bit registers can be
used to store data ranging from packed 8-bit to 64-bit fixed-point data. Word widths
greater than 32 bits are stored by using to registers as a pair. In Freescale SC3850,
16 registers form a register file, which supports word widths up to 40 bits. Special
packed data formats are supported such that two 20-bit operands can be packed into
a single 40-bit register. This format is well suited for representing complex numbers.
3.1.3
Shifters
Shifters can be found in all general-purpose processors and the actual shifter unit
is part of ALU. In general, two type of shift operations can be found: arithmetic
and logical shift. The difference is in right shift: in logical shift, the vacant bit
positions are filled with zeros while the sign-extension is used in arithmetic shift.
In both cases, the vacant bits are filled with zeros in left shift. Yet another form of
shift is circular shift (or rotation) where bits shifted out are moved in the vacant bit
positions. Circular shifts are used in communications applications and some address
computations.
The arithmetic shift is a useful operation in fixed-point processors as arithmetic
shift b bits to the left corresponds to multiplication by a factor of 2 b and shift to
the right is division by 2 b . In fixed-point DSP processors, shifters can be found in
various locations as shifting is needed for different purpose. Shifting can be used
to provide headroom against overflow in multiply-accumulation, i.e., if the product
is shifted b bits to the right, 2 b accumulations can be performed without overflow.
Such an organization was used in early DSP processors, e.g., in TI TMS320C25
depicted in Fig. 1 , but the disadvantage is loss of precision as the least significant
bits are lost in shifting. The shifter after the multiplier can still be useful when using
fractional mode multiplication, i.e., product is shifted one bit to the left in order to
remove the extra sign bit due to multiplication of fractional operands, e.g., in TI
TMS320C54x [ 38 ] .
Search WWH ::




Custom Search