Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Motorola 68881

From Wikipedia, the free encyclopedia
Computer floating-point unit
This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Motorola 68881" – news ·newspapers ·books ·scholar ·JSTOR
(June 2017) (Learn how and when to remove this message)
Motorola 68881 FPU

TheMotorola 68881 andMotorola 68882 arefloating-point units (FPUs) used in some computer systems in conjunction with Motorola's 32-bit68020 or68030 microprocessors. These coprocessors are external chips, designed before floating point math became standard on CPUs. The Motorola 68881 was introduced in 1984.[1] The 68882 is a higher performance version produced later.

Overview

[edit]
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, allopcodes beginning with thehexadecimal digit "F" could either be forwarded to an external coprocessor or be used as "traps" which would throw anexception, handing control to the computer'soperating system. If an FPU is not present in the system, the OS would then either call an FPUemulator 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

[edit]
Motorola 68881/68882 series registers
79...63...00(bit position)
Floating point registers
±exponentmantissaFP0
±exponentmantissaFP1
±exponentmantissaFP2
±exponentmantissaFP3
±exponentmantissaFP4
±exponentmantissaFP5
±exponentmantissaFP6
±exponentmantissaFP7
 31...23...15...07...00(bit position)
Control register
 00Exception EnableMode ControlFPCR
Status register
 ConditionQuotientException StatusAccrued ExceptionFPSR
Instruction address register
 32 Bit AddressFPIAR

The 68881 has eight 80-bit data registers (a 64-bit mantissa plus a sign bit, and a 15-bit signed exponent).[2] It allows seven different modes of numeric representation, including single-precision floating point, double-precision floating point, extended-precision floating point, integers as 8-, 16- and 32-bit quantities and a floating-pointBinary-coded decimal format. The binary floating point formats are as defined by theIEEE 754 floating-point standard. 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

[edit]
Die of Motorola 68882

The 68882 is an improved version of the 68881, with betterpipelining, and eventually available at higherclock speeds.[3][4] 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 affectsUNIX and other preemptive multitasking OSes that had to be modified to allocate more space for it.

Usage

[edit]

The 68881 or 68882 were used in theSun MicrosystemsSun-3 workstations,IBM RT PC workstations,Apple ComputerMacintosh II family,NeXT Computer, SharpX68000,Amiga 3000,Convergent Technologies MightyFrame,Atari Mega STE,TT, andFalcon. Some[which?] third-party Amiga and Atari products used the 68881 or 68882 as amemory-mapped peripheral to the68000.

Versions

[edit]

68881

[edit]
  • 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

[edit]
  • 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 the comp.sys.m68k FAQ.[3] No statistics are listed for the 16 MHz and 20 MHz 68882, though these chips were indeed produced.

Legacy

[edit]

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

References

[edit]
  1. ^Sterling, Thomas; Anderson, Matthew; Brodowicz, Maciej (2017).High Performance Computing: Modern Systems and Practices. Morgan Kaufmann. p. 459.ISBN 978-0-12-420158-3.
  2. ^MC68881 Technical Summary HCMOS Floating Point Coprocessor(PDF), MC68000 Family Reference Manual, Motorola
  3. ^abBoys, Robert (1996-01-06)."Frequently Asked Questions (FAQ) comp.sys.m68k".faqs.org. Retrieved2023-06-23.
  4. ^MC68882 Technical Summary HCMOS Floating Point Coprocessor(PDF), MC68000 Family Reference Manual, Motorola
Notes
Industrial control unit
6800 family
68000 family
Embedded system68k-variants
88000
Floating-pointcoprocessors (FPUs)
Memory management units (MMU)
PowerPC family
ARM
8-bit
16/32-bit
24-bit
32-bit
Authority control databases: NationalEdit this at Wikidata
Retrieved from "https://en.wikipedia.org/w/index.php?title=Motorola_68881&oldid=1188208711"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp