[net.unix-wizards] 68000 fp?

MBM%mit-xx@sri-unix.UUCP (06/14/83)

From:  Michael B McIlrath <MBM@mit-xx>

Does anyone have any info on floating point packages for the 68000?
In particular how bad are they in comparison to running on other
micros that have an fp co-processor, e.g., the 8087?   An application
here is trying to decide between an 8086 and 68k, and has a requirement
for "acceptable" fp performance.
--mike
-------

jcp%brl-bmd@sri-unix.UUCP (06/16/83)

From:      J. C. Pistritto <jcp@brl-bmd>

I have experience with the Motorola 68000 FFP 'Fast Floating Point' Package.

We use this package as part of a process control system where all of the
primary control elements are in floating point.  The trick with this package
is the special 'FFP' format that floating numbers are stored in.  (Routines
are provided to go back and forth to IEEE standard floating point).  Also,
only single precision (7.5 digits) is available.  The add and subtract
times are minimal (say 10microseconds or so), and the multiply is about
60, divide about 80 or so).  (These are worst case times on an 8Mhz 68000)

We use a cpu board that allows on-board ROM memory chips, and we run the
floating point out of on-board ROM (for speed).  We find performance to
be not quite what you could get with an 8086/8087 pair, but the processor
is MUCH nicer to program, (instruction set wise).  By the way, when comparing
the 68000 times against what the Intel salesman will tell you, remember to
include time for loading/unloading the 8087 internal registers.  (These use
special instructions).

If the application is being done in 'C' or 'Pascal' or some such high level
language, I would STRONGLY reccomment the Motorola processor, (having used
both 8086 and 68000 at assembly language and 'C' levels for more than two
years), simply because it executes a given 'C' construction in many fewer
instructions.  (due to the generality of the register set, and the added
number of registers).  For instance, current 'C' implementations for the
8086 give NONE or ONE register variables, whereas 68000 implementations
typically support the same THREE as the PDP-11, or occasionally more.

Consider the difference in performance THAT could make.  (I have seen code
run TEN times faster when register variables are used...)

						-JCP-
						CPRC Inc.