Motorola 68881

Motorola 68881
A Motorola 68881 FPU

The Motorola 68881 and Motorola 68882 were floating-point coprocessor chips that were used in some computer systems in conjunction with the 68020 or 68030 CPUs. The addition of one of these chips added substantial cost to the computer, but added a floating point unit that could rapidly perform floating point math calculations. At the time, this was useful mostly for scientific and mathematical software.

Contents

Overview

A Motorola 68882 FPU

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" were "traps" which would throw an interrupt, handing control to the computer's operating system. If a 68881 is present in the system, the CPU would allow it to execute the instruction. If not, the OS would either call an FPU emulator to execute the instruction using 68020 integer-based software code, or would return an error code to the program.

Architecture

The 68881 had eight 96-bit data registers. It allowed 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 was not a general-purpose CPU. For example, when an instruction required any address calculations, the main CPU would handle them before the 68881 took control.

The CPU/FPU pair were designed such that both could run at the same time. When the CPU encountered a 68881 instruction, it would hand the FPU all operands needed for that instruction, and then the FPU would release the CPU to go on and execute the next instruction.

68882

The 68882 was an improved version of the 68881, with better pipelining, and eventually available at higher clock speeds. Its instruction set was exactly the same as that of the 68881. Motorola claimed in some marketing literature that it executed some instructions 40% faster than a 68881 at the same clock speed, though this did not reflect typical performance at allOctober 2011[says who?]. The 68882 is pin compatible with the 68881 and can be used as a direct replacement in most systems.

Usage

Notable computers including 68881 or 68882 FPUs included the Sun 3 from Sun Microsystems, the Macintosh II family of computers from Apple Computer, parts of the Atari family (Mega STE, TT and Falcon030) and the Commodore Amiga 3000. Some third-party Amiga and Atari products used the 68881 or 68882 as a memory-mapped peripheral to the 68000.

When the Motorola 68040 processor was introduced, it included the FPU internally. Most instructions and numeric representation modes from the 68881 were supported in hardware, but some were not, and were emulated in software.

Selected statistics

68881

  • 155,000 transistors on-chip
  • 16MHz version ran at 160 KFLOPS
  • 20MHz version ran at 192 KFLOPS
  • 25MHz version ran at 240 KFLOPS

68882

  • 176,000 transistors on-chip
  • 25MHz version ran at 264 KFLOPS
  • 33MHz version ran at 352 KFLOPS
  • 40MHz version ran at 422 KFLOPS
  • 50MHz version ran at 528 KFLOPS

68040

  • 25MHz FPU ran at 3.500 MFLOPS
  • 33MHz FPU ran at 4.662 MFLOPS
  • 40MHz FPU ran at 5.600 MFLOPS

These statistics came from the comp.sys.m68k FAQ. No statistics are listed for the 16MHz and 20MHz 68882, though these chips were indeed produced.

References


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Motorola 68881 — Le Motorola 68881 est un coprocesseur mathématique destiné à travailler en complément à la famille de microprocesseurs m68k de Motorola. Le Motorola 68882 est une version améliorée du 68881, mais tout à fait compatible pour le reste. Sommaire 1… …   Wikipédia en Français

  • Motorola 68881 — Motorola 68882 Die MC68881 und MC68882 von …   Deutsch Wikipedia

  • Motorola 68881 — Una FPU Motorola 68881 FPU El Motorola 68881 fue un coprocesador matemático que se utilizó en algunos sistemas informáticos que empleaban la CPU 68020 o 68030. La adición del chip 68881 elevaba sustancialmente el coste del ordenador, pero… …   Wikipedia Español

  • Motorola 68882 — Motorola 68881 Le Motorola 68881 est un coprocesseur mathématique destiné à travailler en complément à la famille de microprocesseurs m68k de Motorola. Le Motorola 68882 est une version améliorée du 68881, mais tout à fait compatible pour le… …   Wikipédia en Français

  • Motorola 68000er-Familie — Motorola MC68000 im 64 poligen DIP Motorola 68 …   Deutsch Wikipedia

  • Motorola 68040 — Motorola 68LC040 mit einer Taktfrequenz von 25 MHz. Der Motorola 68040 ist ein 32 Bit Mikroprozessor des Unternehmens Motorola. Er verfügt in der vollen Version über zwei integrierte MMUs (gemäß der Harvard Architektur) und eine dem Motorola… …   Deutsch Wikipedia

  • Motorola 68EC030 — Motorola 68030 Motorola 68030 à 50 MHz Le Motorola 68030 et sa version économique 68EC030 est un microprocesseur CISC 32 bits de la famille m68k de Motorola. Le 68030 est le successeur du Motorola 68020 et fut suivi par le Motorola 68040. Ce… …   Wikipédia en Français

  • Motorola 68EC040 — Motorola 68040 Le Motorola 68040 est un microprocesseur CISC 32 bits de la famille m68k de Motorola. Il succède au Motorola 68030 et précède le Motorola 68060. Le 68050 fut un projet abandonné, il était aux 68040 ce qu étaient le 68030 au 68020,… …   Wikipédia en Français

  • Motorola 68LC040 — Motorola 68040 Le Motorola 68040 est un microprocesseur CISC 32 bits de la famille m68k de Motorola. Il succède au Motorola 68030 et précède le Motorola 68060. Le 68050 fut un projet abandonné, il était aux 68040 ce qu étaient le 68030 au 68020,… …   Wikipédia en Français

  • Motorola 68EC040 — Motorola 68LC040 mit einer Taktfrequenz von 25 MHz. Der Motorola 68040 ist ein 32 Bit Mikroprozessor der Firma Motorola. Er verfügt in der vollen Version über zwei integrierte MMUs (gemäß der Harvard Architektur) und eine dem Motorola 68881/68882 …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”