[comp.arch] FP: software vs. hardware

radford@calgary.UUCP (Radford Neal) (09/30/87)

In article <8668@utzoo.UUCP>, henry@utzoo.UUCP (Henry Spencer) writes:

> ... I wasn't saying "the 68881
> is more accurate than carefully-implemented double-precision software such
> as one would expect from e.g. MIPSco"; I was saying "the 68881 is more
> accurate than the sloppy first-cut software that one confidently expects
> XYZ Vaporboxes Inc. to ship as its `production' release".  The point is not
> that the 68881 has inherent advantages over software, but that it represents
> a *cheap* *prepackaged* high-quality solution.  In principle one could find
> the same thing in software, but commercial realities make this unlikely
> unless it comes from a university:  the 68881 can be cheaply and widely
> sold at a profit because *it cannot be pirated easily*.

Maybe I'm naive, but I don't understand why the vendor of the main
processor chip doesn't write low-level software like FP libraries.
If Motorola wrote good transcendental functions for the 68020, or for
the 68881, if it hadn't had them in microcode, wouldn't that increase
sales of their product enough to justify their effort?

Anyone want to clue me in to reality here?

    Radford Neal

henry@utzoo.UUCP (Henry Spencer) (10/12/87)

> If Motorola wrote good transcendental functions for the 68020, or for
> the 68881, if it hadn't had them in microcode, wouldn't that increase
> sales of their product enough to justify their effort?

Perhaps... but it's a substantial investment.  Given a standard format
for the floating-point, what's to stop other manufacturers using it to
boost sales of their chips too?

Motorola has in fact done roughly this, but has put the functions inside
the 68881.  Not only is it very difficult to read the internal microcode
to reverse-engineer it, the code is very 68881-specific and difficult to
adapt to other peoples' products.  This gives them the same sales boost
while keeping it all for them.
-- 
"Mir" means "peace", as in           |  Henry Spencer @ U of Toronto Zoology
"the war is over; we've won".        | {allegra,ihnp4,decvax,utai}!utzoo!henry

jimv@radix (Jim Valerio) (10/12/87)

In article <1080@vaxb.calgary.UUCP> radford@calgary.UUCP (Radford Neal) writes:
>I don't understand why the vendor of the main processor chip doesn't write
>low-level software like FP libraries.

In another article, Larry Yang <lyang%scherzo@Sun.COM> asks:
>How much more time would Motorola buy if they didn't do transcendentals
>in micro/nanocode and had software engineers write libraries that they
>could sell to customers?  Could the 881 be fit onto a smaller die (i.e.,
>easier layout, better yield)?

and Michael Galassi <nerd@percival.UUCP> replies:
>The bigest advantage I see in using microcode to do the FP is that you
>save the memory references while the computation is being done [...].


At the risk of repeating myself, there are good technical reasons to put the
transcendental functions in microcode.  See my article <8@omepd> entitled
"Transcendental functions and microcoded instructions" for more detail.

In my experience, it is difficult for a component manufacturer to supply
significant functions in software for its customers.  In this particular
case, there are a lot of assumptions that need to be made about the
language and operating system environment, not to mention naming and calling
conventions for the routines themselves.  Not every customer runs C code
on a Unix system.  (Before you respond, note that I said "difficult" here,
not impossible.)

Also, in my experience hardware engineers are not often good programmers.
Component companies seem to largely hire hardware engineers.  One's expertise
and available resources tend to color one's solution to a problem.


And last, so what?  I suspect that the extra area in the 68881 to support
the transcendental functions (microcode, ROMs, etc) is no more than 10% of
its total area.  Although this adversely affects yields, you should keep in
mind that the silicon area in such a coprocessor is probably no greater than
that for the main processor.  Yet, if you look at the prices, you'll see that
the floating-point part has and will keep a much higher price than the CPU.

What does this mean?  Floating-point coprocessors are lucratic, high-margin
parts.
--
Jim Valerio	{verdix,intelca!mipos3,intel-iwarp.arpa}!omepd!radix!jimv