Milestone-Proposal:IEEE Standard 754 for Floating Point Arithmetic

From IEEE Milestones Wiki


To see comments, or add a comment to this discussion, click here.

Docket #:2021-06

This is a draft proposal, that has not yet been submitted. To submit this proposal, click on the edit button in toolbar above, indicated by an icon displaying a pencil on paper. At the bottom of the form, check the box that says "Submit this proposal to the IEEE History Committee for review. Only check this when the proposal is finished" and save the page.


To the proposer’s knowledge, is this achievement subject to litigation? No

Is the achievement you are proposing more than 25 years old? Yes

Is the achievement you are proposing within IEEE’s designated fields as defined by IEEE Bylaw I-104.11, namely: Engineering, Computer Sciences and Information Technology, Physical Sciences, Biological and Medical Sciences, Mathematics, Technical Communications, Education, Management, and Law and Policy. Yes

Did the achievement provide a meaningful benefit for humanity? Yes

Was it of at least regional importance? Yes

Has an IEEE Organizational Unit agreed to pay for the milestone plaque(s)? Yes

Has an IEEE Organizational Unit agreed to arrange the dedication ceremony? Yes

Has the IEEE Section in which the milestone is located agreed to take responsibility for the plaque after it is dedicated? Yes

Has the owner of the site agreed to have it designated as an IEEE Milestone? Yes


Year or range of years in which the achievement occurred:

1977-1985

Title of the proposed milestone:

IEEE Standard 754 for Binary Floating-Point Arithmetic, 1985

Plaque citation summarizing the achievement and its significance:

In 1978, faculty and students at U.C. Berkeley drafted what became IEEE Standard 754 for Binary Floating-Point Arithmetic. Inspired by ongoing collaboration with Intel, the proposal revolutionized numerical computing. Its robust arithmetic and standard data types promoted unprecedented program reliability and portability. By 1980, microprocessor companies were already implementing the proposal, which was formally approved in 1985. IEEE 754 remains the standard for reliable numerical computing.

In what IEEE section(s) does it reside?

Oakland / East Bay

IEEE Organizational Unit(s) which have agreed to sponsor the Milestone:

IEEE Organizational Unit(s) paying for milestone plaque(s):


IEEE Organizational Unit(s) arranging the dedication ceremony:


IEEE section(s) monitoring the plaque(s):


Milestone proposer(s):

Proposer name: Jerome Coonen
Proposer email: Proposer's email masked to public

Proposer name: James Thomas
Proposer email: Proposer's email masked to public

Please note: your email address and contact information will be masked on the website for privacy reasons. Only IEEE History Center Staff will be able to view the email address.

Street address(es) and GPS coordinates of the intended milestone plaque site(s):

Soda Hall, Le Roy Ave, Berkeley, CA 94709; 37.875624, -122.258882

Describe briefly the intended site(s) of the milestone plaque(s). The intended site(s) must have a direct connection with the achievement (e.g. where developed, invented, tested, demonstrated, installed, or operated, etc.). A museum where a device or example of the technology is displayed, or the university where the inventor studied, are not, in themselves, sufficient connection for a milestone plaque.

Please give the address(es) of the plaque site(s) (GPS coordinates if you have them). Also please give the details of the mounting, i.e. on the outside of the building, in the ground floor entrance hall, on a plinth on the grounds, etc. If visitors to the plaque site will need to go through security, or make an appointment, please give the contact information visitors will need. Soda Hall on U.C. Berkeley campus has housed the Computer Science Department since 1996. Prior to that, Computer Science shared Evans Hall with Mathematics and other departments. During spring break 1978, Prof. William Kahan of the Mathematics, Computer Science, and Electrical Engineering Departments, visiting Prof. Harold Stone and graduate student Jerome Coonen met to discuss Kahan's plan for a standard for floating point arithmetic. He had attended the second meeting of a new IEEE standards subcommittee and he had a plan to bring an ambitious proposal to the third meeting, coming in April 1978. And so arose the first drafts of what became IEEE 754.

Are the original buildings extant?

Soda Hall appears to have good longevity. Evans Hall, where the first work took place, is slated for demolition in this decade.

Details of the plaque mounting:

The plaque will be mounted on the wall in the 3rd floor corridor, adjacent to the existing IEEE Milestone plaque for First RISC Microprocessor, and with comparable mounting.

How is the site protected/secured, and in what ways is it accessible to the public?

Soda Hall is a campus building, of offices, lecture halls, and classrooms, with all the attendant public access and off-hours security.

Who is the present owner of the site(s)?

Regents of the University of California

What is the historical significance of the work (its technological, scientific, or social importance)?

IEEE 754 marks a unique opportunity in history, when technology could take a huge leap forward. With 8-bit microprocessors well-established, semiconductor technology was advancing rapidly and the prospect for scientific, engineering, and financial computation was just ahead. The mainframe and minicomputer industries had splintered into factions of binary, octal, and hexadecimal arithmetic on data elements of varying sizes. Portability of numerical codes was a nightmare. A new standard for floating point arithmetic offered the prospect of high quality, dependable arithmetic across a wide range of computers and programming languages.

Virtually every implementation of floating point arithmetic since 1980 has followed the IEEE standard. As of 2022, it inspires designs in specialized processors for graphics, machine learning, and signal processing, far beyond the scope set out in 1978. IEEE 754 remains an active standard, updated regularly according to the requirements of the IEEE Standards Committee. The most recent revision was approved in 2019.

What obstacles (technical, political, geographic) needed to be overcome?

Final approval of IEEE 754 in 1985 spanned an elapsed 8 years from the founding of the subcommittee in 1977. That's a remarkable time period, given that the proposal was largely established by 1980. Technology was not a problem. Features of the standard were understood and known to be feasible. But as with any advance, there was resistance to change from past and current practice. Remarkably, the fiercest competitors in the emerging microprocessor industry were the first to converge on the KCS (Kahan-Coonen-Stone) proposal from Berkeley which became the subcommittee's ultimate focus. Given the wide range of possibilities in a new arithmetic system, ideas arose from different academic and industrial corners. Every comment and counterproposal required response. The references include papers by Donald MacKenzie on the standardization process and by W. J. Cody on features of the major competing proposals.

What features set this work apart from similar achievements?

What sets IEEE 754 apart is its longevity and the breadth of its impact. The floating point standard has influenced every processor design of the past four decades and more. Even the supercomputers adopted the standard. And now the new generation of machine learning processors adapt features of 754 to their specialized, narrow numeric types. The standard also has reach into programming languages, an area much slower to incorporate features of the standard but nonetheless an area that continues to advance.

IEEE 754 also enjoys a timelessness not shared by standards rooted in a specific technology. Floating point arithmetic arose with early electro-mechanical designs and it is likely to survive for many years to come.

IEEE 754 is a one-of-a-kind standard whose like may never be seen again. Other forms of arithmetic continue to be proposed for engineering and scientific computation, but none has come close to displacing floating point arithmetic. There have been no commercially significant proposals for floating point designs different from IEEE 754. Given the pervasiveness of floating point arithmetic in hardware designs, programming languages,and vast stores of accumulated data, any change from current practice will require significant time and effort.

Supporting texts and citations to establish the dates, location, and importance of the achievement: Minimum of five (5), but as many as needed to support the milestone, such as patents, contemporary newspaper articles, journal articles, or chapters in scholarly books. 'Scholarly' is defined as peer-reviewed, with references, and published. You must supply the texts or excerpts themselves, not just the references. At least one of the references must be from a scholarly book or journal article. All supporting materials must be in English, or accompanied by an English translation.

Annotated Citation

A line-by-line elaboration of the citation tells a bit more of what can't be said in 70 words.

In 1978, faculty and students at U.C. Berkeley drafted what became IEEE Standard 754 for Binary Floating-Point Arithmetic.
Prof. William Kahan, who had attended the second IEEE 754 meeting in September 1977, recruited visiting Prof. Harold Stone and graduate student Jerome Coonen to help write an initial proposal for the next subcommittee meeting, in April 1978.
Inspired by ongoing collaboration with Intel,
In 1976, John Palmer at Intel approached Kahan to help develop a corporate floating point standard, whose first targets would be the 432 processor and the 8087 math coprocessor for the 8086. When the 754 subcommittee appeared, Kahan appealed to Intel management to permit him to develop the arithmetic toward an international standard, while leaving many proprietary features of the Intel standard undisclosed.
the proposal revolutionized numerical computing.
IEEE 754 changed everything. Programmers could depend on the floating point data types presented in programming languages. They could depend on the behavior of the arithmetic.
Its robust arithmetic and standard data types
IEEE standard arithmetic is designed to deliver the most sensible result for every operation. Its 32-bit and 64-bit data types facilitate data transmission in compact binary form.
promoted unprecedented program reliability and portability.
The keyword here is unprecedented. Until IEEE 754, the best approach to portability was to quantify machine characteristics such as radix – binary, octal, decimal , hex; the number of significant digits carried; the maximum and minimum values for which the computer behaved reliably; and then to enumerate axioms of arithmetic every relevant computer would adhere to. Such axioms necessarily represented an abstract machine worse than any ever actually built. This was not a feasible path to portability. The emergence of microprocessors offered a one-time opportunity to start with a clean slate.
By 1980, microprocessor companies were already implementing the proposal,
Intel delivered the 8087 in 1980. Motorola was working on the 68881 coprocessor for its 68000 family. Zilog was actively developing the Z8070 coprocessor for the z8000 family, though it never shipped. Apple, years away from being a chip company, fully endorsed the proposed standard with software implementations on the Apple ii, Apple ///, Lisa, and Macintosh, and an ambitious Pascal system supporting all the features of the 754 proposal.
which was formally approved in 1985.
The IEEE process is necessarily deliberate. The subcommittee replied to many alternative proposals, and to many questions.
IEEE 754 remains the standard for reliable numerical computing.
As of 2021, all general-purpose processors with floating point arithmetic adhere substantially to IEEE 754. Special-purpose chips such as DSPs use IEEE formats and arithmetic for the functions they support. Even the newest Machine Learning and GPU chips take inspiration from IEEE 754, as evidenced by the 16-bit types half-float and bfloat16, and the attention to unbiased rounding to nearest in supported operations.

Supporting materials (supported formats: GIF, JPEG, PNG, PDF, DOC): All supporting materials must be in English, or if not in English, accompanied by an English translation. You must supply the texts or excerpts themselves, not just the references. For documents that are copyright-encumbered, or which you do not have rights to post, email the documents themselves to ieee-history@ieee.org. Please see the Milestone Program Guidelines for more information.

Primary References

IEEE Standard for Floating-Point Arithmetic, ANSI/IEEE Standard 754-2019, Institute of Electrical and Electronics Engineers, New York, USA, 2019. The current revision of IEEE 754 is available for a fee at the link above. The shorter original, superseded version is listed below.

Jean-Michel Muller, Nicolas Brunie, Florent de Dinechin, Claude-Pierre Jeannerod, Mioara Joldes, Vincent Lefèvre, Guillaume Melquiond, Nathalie Revol, and Serge Torres. Handbook of Floating-Point Arithmetic, 2nd edition, Cham, Switzerland, 2018, chapter 3, appendix B. Muller and his colleagues present IEEE standard arithmetic and it's utility in the larger context of computer arithmetic.

Nicholas J. HIgham. Accuracy and Stability of Numerical Algorithms, 2nd edition, SIAM, Philadelphia, PA, USA, 2002, chapters 2, 27. Higham presents IEEE standard arithmetic in the context of scientific and engineering numerical computation.

William Kahan. Why do we need a floating-point arithmetic standard? Technical Report, University of California, Berkeley, CA, USA, February 1981. Kahan, the principal designer of IEEE 754, provides a detailed survey of the numerical challenges inspiring many features of the standard.

Donald MacKenzie. Negotiating Arithmetic, Constructing Proof: The Sociology of Mathematics and Information Technology, Social Studies of Science, SAGE, SAGE, London, Newbury Park, New Delhi, 1993, 37-65. MacKenzie, who studies the sociology of mathematics, computing, and finance, summarizes the process of IEEE 754, several years after its initial adoption.

W. J. Cody, Analysis of Proposals for the Floating-Point Standard, Computer, 14:3(63-68), 1981. Cody presents the three leading proposals to become IEEE 754. Cody went on to chair the committee developing IEEE 854, the radix- an wordlenth-independent variant of IEEE 754. Standard 854 was subsumed into a later revision of 754.

William Kahan and John Palmer. On a Proposed Floating-Point Standard, ACM Signum Newsletter, 14:13-21, 1979. Kahan and Palmer present features of the Intel 8087, announced but not yet released, with mathematical and programming examples.

Historical References

IEEE Standard for Binary Floating-Point Arithmetic, ANSI/IEEE Standard 754-1985, Institute of Electrical and Electronics Engineers, New York, USA, 1985. Reprinted in SIGPLAN Notices 22(2):9-25, 1987. The original binary standard is superseded by the 2019 revision cited above, but it offers a simpler first read of the essentials of standard binary floating point.

Harold Stone, William Kahan, Jerome Coonen. Draft of material on a Floating-Point Standard, from discussions with H. Stone, W. Kaan, J. Coonen, 1978. First draft of what came to be known as the KCS proposal to the IEEE 754 subcommittee.

Thomas Haigh and Paul E. Ceruzzi. A New History of Modern Computing, The MIT Press, Cambridge, MA, USA, 2021, pages 220-221. Haigh and Ceruzzi recount the arrival of the Intel 8087 in 1980, implementing the proposal on its way to becoming IEEE Standard 754. The personal computer passed from a plaything to a tool with the computational power of a minicomputer.

Donald E. Knuth. Open letter to Richard Delp, chair of the IEEE 754 subcommittee, 1980. Knuth, author of The Art of Computer Programming and creator of TeX, urges adoption of the proposal that became IEEE 754.

Donald E. Knuth. The Art of Computer Programming, Volume 2, Seminumerical Algorithms, Third edition, Addison-Wesley, Reading, MA, USA, 1998, pages 222, 226. Knuth's famous line introduces his many references to the standard: A revolutionary change in floating point hardware took place when most manufacturers started to adopt ANSI/IEEE Standard 754 during the late 1980s.

Jerome Coonen. Contributions to a Proposed Standard for Binary Floating-Point Arithmetic, PhD diss., University of California, 1983. Coonen's thesis contains some of the earliest papers on the IEEE 754 proposal, gradual underflow, binary-decimal conversion, and conformance testing.


Computing with IEEE 754

ISO/IEC 9899: 2018 Information technology – Programming languages – C, Technical Committee JTC 1/ SC 22, 2018. The C standard, available for purchase here, offers bindings to many features of IEEE 754 arithmetic.

Fortran 2018 Working Draft, Technical Committee JTC 1/ SC 22/WG 5, 2018. The Fortran 2018 draft standard, available free here, supports many features of IEEE 754 arithmetic. In particular, see Clause 17, Exceptions and IEEE Arithmetic.

David Goldberg. What every computer scientist should know about floating-point arithmetic, ACM Computing Surveys, 23(1):5-48, 1991. Goldberg's widely-read paper surveys the state of floating point arithmetic following wide adoption of IEEE 754.

Michael L. Overton. Numerical Computing with IEEE Floating Point Arithmetic: Including One Theorem, One Rule of Thumb, and One Hundred and One Exercises, SIAM, Philadelphia, PA, USA, 2001. Overton's friendly book takes the reader from first steps through some of the subtle points (and misconceptions) about numerical programming.

TBD*** The Near Orthogonality of Syntax, Semantics, and Diagnostics in Numerical Programming Environments, The Relationship between Numerical Computation and Programming Languages, J. K. Reid, Ed. North Holland, Amsterdam, 1982, 103-115. Kahan and Coonen discuss programming language issues underlying the proposed floating point standard.

Peter Ahrens, James Demmel, and Hong Diep Nguyen. Algorithms for Efficient Reproducible Floating Point Summation, ACM Transactions on Mathematical Software, 46(3):22:1-22:49, 2020. Ahrens et al. exploint features of standard arithmetic to compute matching sums across vastly different computer systems.

TBD*** Underflow and the Reliability of Numerical Software, James Demmel, "SIAM J. Sci. Statist. Comput., 5(4):887-919, 1984. Demmel explores the benefits of gradual underflow, compared to flushing underflows to zero, over a variety of common coes.

John Hauser. Handling floating-point exceptions in numeric programs, ACM Transactions on Programming Languages and Systems, 18(2):139-174, 1996. Hauser's accessible tutorial explains programming in the face of exceptions like over/underflow and division by zero. He compares IEEE standard arithmetic with older, less robust systems.

Implementations

Berkeley SoftFloat, John Hauser, 2017. Hauser's widely-used reference implementation conforms scrupulously to the 1985 standard, with some updates for the 2008 revision. It is available free under license from the Regents of the University of California.

Berkeley TestFloat, John Hauser, 2018. Hauser's TestFloat generates test cases to compare a floating point implementation with TestFloat's own embedded software implementation. It is available free under license from the Regents of the University of California.

fdlibm, Sun Microsystems, 1993. Sun, now a part of Oracle, offered a freely distributable collection of functions normally found in the Unix libm mathematical function library. The functions are designed for IEEE standard arithmetic. The collection is available free at the NetLib.

UCBTest, Zhishun Alex Liu et al., 1995. Under the direction of Prof. William Kahan, Liu and other students developed a suite of programs to test elementary functions. It is available free at the NetLib.

Please email a jpeg or PDF a letter in English, or with English translation, from the site owner(s) giving permission to place IEEE milestone plaque on the property, and a letter (or forwarded email) from the appropriate Section Chair supporting the Milestone application to ieee-history@ieee.org with the subject line "Attention: Milestone Administrator." Note that there are multiple texts of the letter depending on whether an IEEE organizational unit other than the section will be paying for the plaque(s).