[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Two technical questions on IEEE Std 754-2008



From: Charles Stevens <charles.stevens@xxxxxxxx>
To: <forieee@xxxxxxxxxxxxxx>
CC: IEEE 754 <stds-754@xxxxxxxxxxxxxxxxx>
Subject: RE: Two technical questions on IEEE Std 754-2008
Date: Thu, 24 Feb 2011 13:21:57 -0700


. . .

I agree that if we had known back in 2006 or 2007 that this was
an issue we needed to consider, we should have done something
about it -- most probably separate USAGE clauses for the binary
encodings of the two IEEE decimal formats we support, a new mode
of arithmetic, and a set of intrinsic functions to convert items
from one encoding to another.  But we didn't.  In fact, the first
record I have about "binary encoding" is from February 2009, after
the 754 standard was published.

. . .


    -Chuck Stevens


        Oh, Charles,

        You forget who you are talking to.  I was the chairman.
        I kept notes of those meetings.

        You WERE there.  You DID know.

        You were not there back in 2002 & 2003 when Mike Cowlishaw
        took on the whole of the binary floating-point community &
        convinced them that decimal was not only sensible but
        necessary.

        After a year & a half of negotiations over the details of
        decimal floating-point, he spoke at a remarkable 2-day meeting
        in Berkeley.  During that meeting he took on an overflowing
        room full of binary floating-point experts who started out
        100% against him.  And he beat them down.  In the end, we
        all came to an agreement.

        BTW, the sticking point was unnormalized numbers.  They have
        been an anathema in the binary world for at least as long as
        Cobol has existed (prior to the IBM 709).  Having eliminated
        them in 754-1985, we thought we would commit a great sin
        against the future if we allowed them back into the world.

        But he (like you) was mostly interested in the number format.
        And we (I count myself among them) couldn't care less about
        the format but needed consistent & correct arithmetic.

        When both sides agreed on that, we had our compromise.

        Mike did all of that work primarily for your benefit.  You
        were not there at the time so I tell you this now to let you
        know how important his work was in changing the nature of 754
        to accomodate Cobol & the rest of the decimal world.

        Flash forward to 14 July 2005.  The meeting was held at HP in
        Palo Alto.  There were 18 people in the room.  And 5 people on
        the phone.  You were one of them.

        One of the remarks I attributed to you was:

                For all of what Chuck outlined, he had to admit that
                there is only one implementation that only partially
                implements 'standard arithmetic'.  Perhaps that will
                improved in the near future.

        I guess nothing much has changed in the last 6 years.

        Anyway, this was the meeting in which Peter Tang outlined
        Intel's plan for a binary encoded form of decimal arithmetic
        (later to be known as BID).  It was not the first we had
        heard of it but this was the meeting that dropped the bomb.

        Peter spoke for 45 minutes.  Using the results from Mike's
        own benchmarks, he made a good case for why his format was
        a good one for an otherwise binary machine that supported
        FMA.

        Mike delivered a rebuttal supporting DPD that also lasted
        45 minutes.

        At the time we all believed there was room for only one
        format in 754.  And the flexibility that Mike demonstrated
        3 years earlier was not longer available to him.  By this
        time he had gone to silicon.

        When Mike was done I spoke for 15 minutes.  As I was
        speaking at the time the thrust of my remarks didn't make
        it into my notes but I recall proposing a sort of Millennial
        Encoded Decimal as a compromise.  You see, anticipating
        this conflict, I had spent the previous weeks outlining
        the design of circuits that worked with 10x10-->20 bit
        multipliers as the basic unit.  I showed that they were
        not significantly harder to decode than DPD & also not
        significantly slower than binary.  It was my poor attempt
        at offering a compromise.

        In the end, nobody was interested in my compromise.

        Well, my notes go on to say: "At which point, a very
        lively discussion ensued."

        For those of you who have read my notes in the past, the
        phrase "a lively discussion" is chairman diplo-speak for
        "we yelled at each other".  It gets to "very" when we call
        each other names.  Fortunately it never got to "spirited".
        That's when "yo momma" gets involved.

        Still we argued well past dinner time.  I recall telling
        Peter in a private moment that I really wished he was an
        idiot.  And explaining that if he were an idiot I could
        ignore all this crap & go back to the business of the
        standard.  But Peter is NOT an idiot & his proposal had
        merit.  So did Mike's point of view.

        And there it sat unresolved until, in the fall of 2005,
        it was clear that both sides were intractable & unwilling
        to come to any compromise.

        So, after consulting with the IEEE, in September of 2005
        I declared the revision effort to be at an impasse &
        suspended further meetings until this issue was resolved.
        I asked Jeff Kidder (of Apple at the time) to act as a
        neutral arbiter between the two sides & awaited results.

        I attended these meetings myself.  Joe Darcy hosted one
        meeting at Sun in Santa Clara on 16 November 2005.  You
        were one of the people on the phone.  I attribute a few
        remarks to you.  For example.

                Chuck claimed that Cobol can conform to 754 by
                implementing only what his customers need.  Cobol
                is not interested in some of the features of 754.
                Our position is that none of the optimizations
                that we might discuss will apply to Cobol due to
                its rigid syntax.  Cobol might support both
                Decimal128 & Binary128 (& conversions) but would
                NEVER support mixed radix expressions.

        Perhaps I should have taken that as a warning.  I did not.
        You may blame me for that.

        Anyway, both sides were well hardened in their positions
        by this time.

        I had hoped to scare both sides into talking to each
        other.  Instead, both sides brought pressure on the IEEE
        to have me removed as chairman.  Since both sides did that
        the IEEE must have thought I was doing my job & left me to
        run things as I saw fit.

        Alas, by December 2006 the only compromise both sides
        would consider was having both formats in the standard.

        Which brings us back to where we are today.

        Now, remember, all this was done for you guys.  And you
        were there.  It all happened before your eyes.  We listened
        to your comments.  Had you raised any issues of not handling
        NaNs & infinities it would have made a big stink & made it
        into my notes.  But there is no such comment there.

        I realize that none of this history is going to change
        your mind.  If the Cobol committee decides to ignore the
        work we did on their behalf, that is one thing.  But let's
        not pretend that it was foist on you without your prior
        knowledge.

        It is simply not so.


                                Dan


754 | revision | FAQ | references | list archive