6.5 FPU pipeline and instruction timing
Programming the MIPS32® 74K™ Core Family, Revision 02.14
82
Cause/Enables/Flags
: each of these fields is broken up into five bits, each representing an IEEE-recognized class of
exceptional results
21
which can be individually treated either by interrupting the computation, or substituting an
IEEE-defined exceptional value. So each field contains:
The bits are
V
for invalid operation (e.g. square root of -1),
Z
for divide-by-zero,
O
for overflow (a number too large
to represent),
U
for underflow (a number too small to represent) and
I
for inexact - even
1/3
is inexact in binary.
Then the:
–
Enables
field is "write 1 to take a MIPS exception if this condition occurs" - rarely done. With the IEEE
exception-catcher disabled, the hardware/emulator together will provide a suitable exceptional result.
–
Cause
field records what if any conditions occurred in the last-executed FP instruction. Because that’s often
too transient, the
–
Flags
field remembers all and any conditions which happened since it was last written to zero by software.
RM
: is the rounding mode, as required by IEEE:
6.5 FPU pipeline and instruction timing
This is not so simple. The floating point unit (FPU) has its own pipeline. More often than not, the FPU uses a slower
clock rate than the integer core - a full-speed FPU is a build option, but in that case the FPU will usually limit the
clock rate which your design can reach. For 74K family cores, the FPU will commonly be built with a two-thirds
clock. You can find how your core is set up by looking at the
Config7[FPR1-0]
bits, defined in the notes to
Nonetheless, this is a powerful 64-bit floating point unit which can deliver very good performance. The FPU pipeline
is shown in
21. Sorry about the ugly wording. The IEEE standard talks of “exceptions” which makes more sense but gets mixed up with
MIPS “exceptions”, and they’re not the same thing.
bit number 4 3 2
1 0
field V Z O U I
RM
Meaning
0 Round to nearest - RN
If the result is exactly half-way between the nearest values, pick the one whose
mantissa bit0 is zero.
1 Round toward zero - RZ
2 Round towards plus infinity - RP
“Round up” (but unambiguous about what you do about negative numbers).
3 Round towards minus infinity - RM
Содержание MIPS32 74K Series
Страница 1: ...Document Number MD00541 Revision 02 14 March 30 2011 Programming the MIPS32 74K Core Family...
Страница 10: ...Programming the MIPS32 74K Core Family Revision 02 14 10...
Страница 20: ...1 4 A brief guide to the 74K core implementation Programming the MIPS32 74K Core Family Revision 02 14 20...
Страница 28: ...2 2 PRId register identifying your CPU type Programming the MIPS32 74K Core Family Revision 02 14 28...
Страница 54: ...3 8 The TLB and translation Programming the MIPS32 74K Core Family Revision 02 14 54...
Страница 83: ......
Страница 86: ...6 5 FPU pipeline and instruction timing Programming the MIPS32 74K Core Family Revision 02 14 86...
Страница 101: ...The MIPS32 DSP ASE 101 Programming the MIPS32 74K Core Family Revision 02 14...
Страница 134: ...8 4 Performance counters Programming the MIPS32 74K Core Family Revision 02 14 134...
Страница 154: ...C 3 FPU changes in Release 2 of the MIPS32 Architecture Programming the MIPS32 74K Core Family Revision 02 14 154...