Chapter 6
Programming the MIPS32® 74K™ Core Family, Revision 02.14
77
Floating point unit
The 74Kf™ member of the 74K family has a hardware floating point unit (FPU). This:
•
Is a 64-bit FPU: with instructions working on both 64-bit and 32-bit floating point numbers, whose formats are
compatible with the “double precision” and “single precision” recommendations of
•
Is compatible with the MIPS64 Architecture: implements the floating point instruction set defined in
; because the 74K family integer core is a 32-bit processor, a couple of additional instructions
mfhc1
and
mthc1
are available to help pack and unpack 64-bit values when copying data between integer and
FP registers - see
Section C.3 “FPU changes in Release 2 of the MIPS32® Architecture”
or for full details
.
•
Usually runs at half or two-thirds of the integer core’s clock rate: the design is tested to work with the FPU run-
ning at the core speed, but in likely processes the FPU will then limit the achievable frequency of the whole core.
You can query the
Config7[FPR,FPR1]
fields in
Section B.2.1 “The Config7 register”
to check which option is
used on your CPU.
•
Can run without an exception handler: the FPU offers a range of options to handle very large and very small
numbers in hardware. With the 74K core full IEEE754 compliance does require that some operand/operation
combinations be trapped and emulated, but high performance and good accuracy are available with settings
which get the hardware to do everything - see
Section 6.4.2, "FPU “unimplemented” exceptions (and how to
.
•
Omits “paired single” and MIPS-3D extensions: those are primarily aimed at 3D graphics, and are described as
optional in
•
Uses an autonomous 7-stage pipeline: all data transfers are interlocked, so the programmer is never aware of the
pipeline. Compiler writers and daemon subroutine tuners do need to know: there’s timing information in
6.5, "FPU pipeline and instruction timing"
•
Has limited dual issue: the FPU has two parallel pipelines, and under optimum conditions can issue two instruc-
tions simultaneously. One handles all arithmetic operations, the other deals with loads, stores and data transfers
to/from integer registers.
6.1 Data representation
If you’d like to read up on floating point in general you might like to read
. But it’s probably useful
to remind you (in
) what 32-bit and 64-bit floating point numbers on MIPS architecture CPUs look like.
Содержание 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...