more on Intel 8087 patent, and observations on defining base platforms
David Hough
validgh!sun!Eng!dghaSun.COM
Wed Jan 23 15:55:47 PST 1991
I have learned a little bit more about the Intel 8087 patent that was
mentioned in the San Jose Mercury News article about the Intel-Cyrix
litigation.
Since I haven't read the patent, the following third-hand information should
be considered accordingly.
There are several claims in the patent which was filed around 1980.
The two that I heard about
relate to the stack addressing model and extended-precision data registers.
Extended-precision data registers: the 8087 may have been the first
"modern" microprocessor to convert all operands into a common wide internal type,
although not the last; the MC6888x and WE 32206 work this way as well,
I think. The question is whether there were mainframe or minicomputer
antecedents that did something similar. I know some GE (or was it
Honeywell) mainframes had a floating-point accumulator, at least, with
extra precision. Certainly a lot of hand-held calculators, including
many HP and TI models,
have had internal registers that were wider than the visible data.
If there is a legitimate Intel patent claim here, however, presumably
it would be covered by cross-licensing agreements between Intel
and Motorola and ATT.
Stack addressing: the 8087 allows its eight extended-precision data registers
to be addressed either by number 0-7 in conventional general register fashion
or as stack operands. I don't recall in detail but it seems that this idea
was in the air, so to speak, at that time, as part of the last hurrah of
"language-directed" processors before economics turned in favor of RISC
designs. For instance, at Tektronix in 1976-80 I worked on floating-point
microcode for Tom Almy's "TINA" processor for the 4061,
which had sixteen general purpose registers at
the microcode level, two of which were the top of stack and next to top.
The macrocode instructions were stack oriented and so had no operand
specifiers. This isn't exactly the same thing as the 8087 design but suggests
that other contemporary systems may have been designed like the 8087.
The ATT CRISP project had something to do with mapping registers and stack,
but I don't know the details or timing.
Perhaps somebody who knows more will fill in the details!
-------------------------------------------------------------------------
Although the 8087 is beginning to seem a little primitive now, like its
contemporary the Apple-][, both were marvels
in their day in their respective ways. IBM lost a great opportunity
by failing to make floating-point hardware a part of the standard
PC environment - so that most of the applications became written on
the assumption that the hardware might be, but probably wasn't, there.
I don't know whether this was due to IBM myopia about minimum base sticker
price (were they thinking of
selling lots of home computers as well as to businesses?) or Intel
failing to price the 8087 aggressively enough to get the volume so it
would be cheap.
With the benefit of hindsight we can also see that there was
no logic to introducing an 8086 PC with any amount of memory less than 640K,
but maybe that wasn't so obvious at the time. History may repeat itself
somewhat if the rumored 80486 without floating-point hardware is
introduced and widely used.
For several years Apple reaped a hard-to-measure benefit from having
floating-point hardware standard on 68020 systems. It would have been
a larger benefit if a 68881 had been available for the original 68000
Macintosh systems and all the applications had been written to depend
on it, but Apple didn't have that option. Now Apple has enjoyed great
success with an inexpensive 68020 with no 68881, suggesting that
applications that fully exploit the 68040's built in floating point might
continue to be slower to come than Apple might hope.
So for their various reasons IBM and Apple defined the base mass-market
platform to exclude hardware floating point.
At Sun we tried most of the same mistaken approaches as others,
as some of our customers might testify who couldn't get very good
performance out of their Sun-3's with 68881's until they learned
about -f68881, (which couldn't be the default because about half the
3/50's didn't have a 68881, in order to have a lower base sticker price),
or who tried to exploit a Sun-3 FPA with -fswitch,
or a Sun-4/110 with no FPU. The concealed damage from
having these stripper models in a product line is that the standard platform
system software (for the window system for instance)
must be written first to operate correctly in the stripped system;
with one or two year product lifetimes, there often isn't time to also make that
software fully exploit the optional hardware when it's available.
So far all the SPARCstations have competent floating-point hardware;
I hope it stays that way, but eternal vigilance is the price of performance,
it seems.
More information about the Numeric-interest
mailing list