The Motorola 68881 and Motorola 68882 are
floating-point unit
In computing, floating-point arithmetic (FP) is arithmetic that represents real numbers approximately, using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base. For example, 12.345 can b ...
s (FPUs) used in some computer systems in conjunction with Motorola's 32-bit
68020 or
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
opcode
In computing, an opcode (abbreviated from operation code, also known as instruction machine code, instruction code, instruction syllable, instruction parcel or opstring) is the portion of a machine language instruction that specifies the opera ...
s beginning with the
hexadecimal
In mathematics and computing, the hexadecimal (also base-16 or simply hex) numeral system is a positional numeral system that represents numbers using a radix (base) of 16. Unlike the decimal system representing numbers using 10 symbols, h ...
digit "F" could either be forwarded to an external coprocessor or be used as "traps" which would throw an
exception, handing control to the computer's
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
. If an FPU is not present in the system, the OS would then either call an FPU
emulator
In computing, an emulator is hardware or software that enables one computer system (called the ''host'') to behave like another computer system (called the ''guest''). An emulator typically enables the host system to run software or use peri ...
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
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 (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
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 Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, ...
Sun-3 workstations,
IBM RT PC workstations,
Apple Computer
Apple Inc. is an American multinational technology company headquartered in Cupertino, California, United States. Apple is the largest technology company by revenue (totaling in 2021) and, as of June 2022, is the world's biggest company ...
Macintosh II
The Macintosh II is a personal computer designed, manufactured, and sold by Apple Computer from March 1987 to January 1990. Based on the Motorola 68020 32-bit CPU, it is the first Macintosh supporting color graphics. When introduced, a basic s ...
family,
NeXT Computer
NeXT Computer (also called the NeXT Computer System) is a workstation computer that was developed, marketed, and sold by NeXT Inc. It was introduced in October 1988 as the company's first and flagship product, at a price of , aimed at the hig ...
, Sharp
X68000
The is a home computer created by Sharp Corporation. It was first released in 1987 and sold only in Japan.
The initial model has a 10 MHz Motorola 68000 CPU, 1 MB of RAM, and lacks a hard drive. The final model was released in 1993 with ...
,
Amiga 3000
The Commodore Amiga 3000, or A3000, is a personal computer released by Commodore in June 1990. It features improved processing speed, improved graphics rendering, and a new revision of the operating system. It is the successor to the Amiga 2000 ...
,
Convergent Technologies MightyFrame,
Atari Mega STE,
TT, and
Falcon
Falcons () are birds of prey in the genus ''Falco'', which includes about 40 species. Falcons are widely distributed on all continents of the world except Antarctica, though closely related raptors did occur there in the Eocene.
Adult falcons ...
. Some third-party Amiga and Atari products used the 68881 or 68882 as a
memory-mapped peripheral to the
68000
The Motorola 68000 (sometimes shortened to Motorola 68k or m68k and usually pronounced "sixty-eight-thousand") is a 16/32-bit complex instruction set computer (CISC) microprocessor, introduced in 1979 by Motorola Semiconductor Products Secto ...
.
Versions
68881
* 155 000 transistors on-chip
* 12 MHz version
* 16 MHz version ran at 160 k
FLOPS
In computing, floating point operations per second (FLOPS, flops or flop/s) is a measure of computer performance, useful in fields of scientific computations that require floating-point calculations. For such cases, it is a more accurate mea ...
* 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
The Motorola 68040 ("''sixty-eight-oh-forty''") is a 32-bit microprocessor in the Motorola 68000 series, released in 1990. It is the successor to the 68030 and is followed by the 68060, skipping the 68050. In keeping with general Motorola ...
, 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