Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Overview  





2 Architecture  





3 68882  





4 Usage  





5 Versions  



5.1  68881  





5.2  68882  







6 Legacy  





7 References  














Motorola 68881






Čeština
Deutsch
Español
Français

Italiano
Magyar
Nederlands

Norsk bokmål
Polski
Slovenčina
Suomi
Svenska
 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 

(Redirected from 68881)

Motorola 68881 FPU

The Motorola 68881 and Motorola 68882 are floating-point units (FPUs) used in some computer systems in conjunction with Motorola's 32-bit 68020or68030 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, 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 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

[edit]
Motorola 68881/68882 series registers
79 ... 63 ... 00 (bit position)
Floating point registers
± exponent mantissa FP0
± exponent mantissa FP1
± exponent mantissa FP2
± exponent mantissa FP3
± exponent mantissa FP4
± exponent mantissa FP5
± exponent mantissa FP6
± exponent mantissa FP7
  31 ... 23 ... 15 ... 07 ... 00 (bit position)
Control register
  0 0 Exception Enable Mode Control FPCR
Status register
  Condition Quotient Exception Status Accrued Exception FPSR
Instruction address register
  32 Bit Address FPIAR

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-point Binary-coded decimal format. The binary floating point formats are as defined by the IEEE 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 better pipelining, and eventually available at higher clock 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 affects UNIX 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 the Sun Microsystems Sun-3 workstations, IBM RT PC workstations, Apple Computer Macintosh II family, NeXT Computer, Sharp X68000, Amiga 3000, Convergent Technologies MightyFrame, Atari Mega STE, TT, and Falcon. Some[which?] third-party Amiga and Atari products used the 68881 or 68882 as a memory-mapped peripheral to the 68000.

Versions

[edit]

68881

[edit]

68882

[edit]

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 the Motorola 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.
  • ^ MC68881 Technical Summary HCMOS Floating Point Coprocessor (PDF), MC68000 Family Reference Manual, Motorola
  • ^ a b Boys, Robert (1996-01-06). "Frequently Asked Questions (FAQ) comp.sys.m68k". faqs.org. Retrieved 2023-06-23.
  • ^ MC68882 Technical Summary HCMOS Floating Point Coprocessor (PDF), MC68000 Family Reference Manual, Motorola
  • Notes

    Retrieved from "https://en.wikipedia.org/w/index.php?title=Motorola_68881&oldid=1188208711"

    Categories: 
    Coprocessors
    Floating point
    Integrated circuits
    68k architecture
    Hidden categories: 
    Articles with short description
    Short description is different from Wikidata
    Articles needing additional references from June 2017
    All articles needing additional references
    All articles with specifically marked weasel-worded phrases
    Articles with specifically marked weasel-worded phrases from May 2018
    Articles with J9U identifiers
    Articles with LCCN identifiers
     



    This page was last edited on 3 December 2023, at 23:57 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki