Notes from Thursday's meeting...
We began with Ivan, Dick, & I describing our objections to the
online NaN proposal. Jeff argued in favor of the proposal. A
general discussion of the issue ensued. I cut off the
discussion at 1:30 in favor of Mike & Eric's presentations.
Mike showed Eric's slides first. Eric's position is that
millenial encoding is not easier than BCD in hardware. He
described a 10-bit adder with a carry at 1024-24. (This is
approximately correct for an add function but I can show him
a much better way to do this for the adds within a multiply.)
He compared this to the BCD adder which (with a 16-6 bit carry)
looks quite similar. He also showed 4 different multiplication
methods but did not consider any even slightly redundant
representation. He made a point about the problems with Peter's
exponent format & the need for divisions near the end of his
Mike continued with the software part of their presentation.
His slides described the variations possible with different
"chunk" sizes. (He mentioned that we agreed to the DPD format
in 2/2003. Sounds about right.) He used the Telco benchmark
as a guide to his results. It seems that the performance is
largely independent of chunk size. His results suggest that
the software cost of DPD lookup is never worse that 2% overall.
When doing conversions alone (with no other work) it rose to
about 4% (but of course nothing is getting done in this case).
Mike also spoke of the combination field & the difficulties of
using Peter's approach for the sake of lexical ordering. He
believes its about 30% added to the cost of conversions which
he already showed was small. He showed the logic equations for
conversion of millenial to BCD which is, naturally, obscene.
Peter began his case study of DPD or GBCD to BCD conversions in
software on the Intel XScale architecture which is apparently
some small embedded processor they sell. First, several slides
detail the DPD -> BCD assembly code. It looks like it takes 14
cycles on average (from 6.3 to 22.4 cycles). Then GBCD -> BCD.
The code was 11 instructions long (with 2 multiplies in it).
He has two cycle multiplies but he hides the latency under the
rearrangeent of the results &, therefore, takes 10.2 cycles in
all cases. (The code size in the DPD case was 55 instructions
but only an average of 14 were executed in any given case.)
Then Peter also discussed the combination field in the encoding
of the exponent & the MSD. He presented a new encoding that
was similar to the existing encoding but included the whole
exponent rather than just a couple of bits. Interesting but
not lexical. Ah, but he CAN contrive a lexical ordering AFTER
he decodes these bits.
Finally, John wanted to talk about various notions of "format".
DPD, GBCD, varients, internal formats, etc. He raised the
issue of external versus internal formats. Or exchange versus
computational formats. He proposed a terminology of 4 formats:
Computational, Internal, Memory, & Exchange. He mentioned the
possibility of just using strings as the exchange format. His
conclusion is that, for the average user, the representation
just doesn't matter. But for the fact that he presents his
ideas BETTER than we have you might think that John had been
listening in on the subcommittee meetings.
At 3:40 or so we took our late break.
After the break, Jeff presented his work from the subcommittee
on our notions similar to John's. Then Prof Kahan presented his
variant of the same notions. (He used the word coterie WRT
decimal fixed point values differently than I understood it from
our discussions.) I touched on the relationship between decimal
& binary on this issue when you bring expressions into the
discussion. Ivan also contributed in that he pointed out that
care must be taken if predictable results are to be counted on
from machine to machine. A lot of time was spent on a compiler
complexity issue that I really didn't understand in the end.
We broke up for dinner around 5:30.
Ivan, Dick, & I will talk on NaN issue 1/2 hour
Eric (w guest rule) 1/2 hour
Mike (w guest rule) 1/2 hour
Peter Tang (w guest rule) 1/2 hour
John Harrison (w guest rule) 1/2 hour