Motorola DSP96002 User Manual

Page 64

Advertising
background image

MOTOROLA

DSP96002 USER’S MANUAL

5 - 11

register is also the destination of the current operation). The DSP96002 does not support double precision.

It does support single extended precision.

5.5.2 Conversion to the Memory Formats

Conversions from the internal double precision format to either of the two memory floating-point formats is

performed whenever a data register is to be stored in memory or any other location external to the Data

ALU. The conversion is actually a "bit rearranging" operation performed automatically by the MOVE in-

structions, and it is only responsible for collecting the required bits from the register and constructing the

32 or 64-bit data field to be stored in memory. This will produce correct results only if the data in the register

is in a precision equal to the specified MOVE precision. For example, for single precision MOVEs the data

must be already rounded to single precision.

Precision conversion to single precision (not format conversion) is accomplished by specifying an appro-

priate rounding operation (this may be an explicit instruction like FTFR.S or an implicit operation like

FADD.S). The result after rounding is still stored in the internal double precision format; however, MOVE

instructions that read it out of the Data ALU do not alter the value due to bit rearrangement. Figure 5-6

shows the bit rearrangement procedure performed by the MOVE instructions.

If a double precision value is to be rounded to single precision and the rounded result should yield a denor-

malized number, two different actions may be performed depending on FZ (Flush-to-Zero) bit in the SR. In

the Flush-to-Zero mode, the result will be stored as zero in the register. In the IEEE mode, the operand will

be first "corrected" by adding to the execution cycle extra cycles for denormalization. However, the data

stored in the register will be in the internal double precision format and the U-tag will be set. The U-tag

indicates that if another Data ALU operation will use this result as an operand, extra cycles should be added

for operand normalization before actually using it.

5.6

OPERAND REFERENCES

The DSP96002 separates operand references into four classes: program, stack, register, and memory ref-

erences. The type of operand reference(s) required for an instruction is specified by both the opcode field

and the data bus movement field of the instruction (see Section 6.3). All operand reference types may not

be used with all instructions.

5.6.1 Program References

Program references (called P references) are references to 32-bit wide program memory space and are

usually instruction reads. Instructions or data operands may be read from or written to program memory

space using the Move Program Memory (MOVEM), Move Peripheral Data (MOVEP), and Move Absolute

Short (MOVES) instructions. Program references may be internal or external memory references depend-

ing on the address and the chip operating mode.

5.6.2 Stack References

Stack references (called S references) are references to a separate 64-bit wide internal memory space

(System Stack) used implicitly to store the PC and SR registers for subroutine calls, interrupts and returns.

In addition to the PC and SR registers, the LA and LC registers are stored on the stack when a program

loop is initiated. The stack space address is always implied by the instruction. Data is written to stack mem-

ory space to save the processor state and is read from the stack to restore the processor state.

Advertising