68882
   HOME

TheInfoList



OR:

The Motorola 68881 and Motorola 68882 are floating-point units (FPUs) used in some computer systems in conjunction with Motorola's 32-bit Motorola 68020, 68020 or Motorola 68030, 68030 microprocessors. These coprocessors are external chips, designed before floating point math became standard on CPUs. The Motorola 68881 was introduced in 1984. The 68882 is a higher performance version produced later.


Overview

The 68020 and 68030 CPUs were designed with the separate 68881 chip in mind. Their instruction sets reserved the "F-line" instructions – that is, all opcodes beginning with the hexadecimal digit "F" could either be forwarded to an external coprocessor or be used as "traps" which would throw an trap (computing), exception, handing control to the computer's operating system. If an FPU is not present in the system, the OS would then either call an FPU emulator to execute the instruction's equivalent using 68020 integer-based software code, return an error to the program, terminate the program, or crash and require a reboot.


Architecture

The 68881 has eight 80-bit data registers[2][3] (a 64-bit mantissa plus a sign bit, and a 15-bit signed exponent). It allows seven different modes of numeric representation, including single-precision, double-precision, and extended-precision, as defined by the IEEE floating-point standard, IEEE 754. It was designed specifically for floating-point math and is not a general-purpose CPU. For example, when an instruction requires any address calculations, the main CPU handles them before the 68881 takes control. The CPU/FPU pair are designed such that both can run at the same time. When the CPU encounters a 68881 instruction, it hands the FPU all operands needed for that instruction, and then the FPU releases the CPU to go on and execute the next instruction.


68882

The 68882 is an improved version of the 68881, with better instruction pipelining, pipelining, and eventually available at higher clock speeds. Its instruction set is exactly the same. Motorola claimed in some marketing literature that it executes some instructions 40% faster than a 68881 at the same clock speed, though this did not reflect typical performance, as seen by its more modest improvement in the table below. The 68882 is pin compatible with the 68881 and can be used as a direct replacement in most systems. The most important software incompatibility is that the 68882 uses a larger FSAVE state frame, which affects Unix, UNIX and other preemptive multitasking OSes that had to be modified to allocate more space for it.


Usage

The 68881 or 68882 were used in the Sun Microsystems Sun-3 workstations, IBM RT PC workstations, Apple Inc., Apple Computer Macintosh II family, NeXT Computer, Sharp X68000, Amiga 3000, Convergent Technologies MightyFrame, Atari Mega STE, Atari TT, TT, and Atari Falcon, Falcon. Some third-party Amiga and Atari products used the 68881 or 68882 as a Memory-mapped I/O, memory-mapped peripheral to the Motorola 68000, 68000.


Versions


68881

* 155 000 transistors on-chip * 12 MHz version * 16 MHz version ran at 160 kFLOPS * 20 MHz version ran at 192 kFLOPS * 25 MHz version ran at 240 kFLOPS


68882

* 176 000 transistors on-chip * 25 MHz version ran at 264 kFLOPS * 33 MHz version ran at 352 kFLOPS * 40 MHz version ran at 422 kFLOPS * 50 MHz version ran at 528 kFLOPS These statistics came from th
comp.sys.m68k FAQ
No statistics are listed for the 16 MHz and 20 MHz 68882, though these chips were indeed produced.


Legacy

Starting with the Motorola 68040, floating point support was included in the CPU itself.


References

;Notes
freescale.com - Motorola MC68000 Family Programmer's Reference Manualfaqs.org - comp.sys.m68k FAQ
{{Authority control Coprocessors Floating point Integrated circuits 68k architecture