Subject: Re: 501-1105 FPA
To: Robert F Schaefer <rschaefe@gcfn.org>
From: Miod Vallat <miod@online.fr>
List: port-sun3
Date: 01/09/2001 01:38:57
> > The ``Floating-Point Programmer's Guide for the Sun Workstation'' manual
> > would be a good start.
>=20
> Know offhand where I might be able to get a hold of one? =20

No. But I can xerox it and send it to you via snail mail, it's a bit
more than 100 pages... hope Sun won't mind.

> Hmmm.  PIO access to it?  Now I'm *really* interested in finding out
> exactly what it does.  It would have to be fast at *something*, to be
> worth going thru that much trouble for it!
Basically it's designed to do fast matrix computation, and a few other
operations useful for fortran programs. Every FPA instruction is a movel
involving a memory address in the FPA mapping range. Given that the FPA
can serve 32 different applications, there is likely to be some magic
arithmetic involved in the mapping operation...
Also, even weirder is the fact that, for ``regular'' floating point
computation it doesn't handle, it sends FPE trap, to tell the system to
dispatch this operation to the regular FPU ; that's why the FPA doesn't
work at all if you don't have any FPU in your machine... and that
enables an application compiled for FPA+ to work with the older FPA,
with some speed penalty. This happen often because every computation
which generates an ieee exception is aborted and passed back to the FPU,
which does a better job at handling those.
Somewhat messy.

> Would the _Programmers_ _Guide_ also have info about the other accelerato=
rs,
> like the sky FFP, & FPA-2?
Yes. But there isn't much on the sky, at least in my edition, as it was
only supported on the Sun2s. Yet this is revision A, FCS, so I suppose
there isn't much Sun official docs on the sky. The ``references''
section mentions a ``Fast Floating-Point Processor Integration Manu=E6l''
from Sky Computers which would probably fill the holes.

> Now I have a bunch of questions I need answered!  Starting with just what,
> exactly, does it accelerate; can it keep track of contexts by itself, can
> more than one coexist peacefully, can different accelerators coexist...
Roughly, everything supported by the 68881 (minus the exception stuff),
with 32 registers instead of 8, a few matrix operations (move and
transpose on 2x2, 3x3 and 4x4 matrix), and vector dot product.
As of running several FPAs in the same box, nothing is said, and the fpa
library probably doesn't support this.

Miod