[net.micro] DEC PRO-350 Floating Point

pls@ncsu.UUCP (Phillip L. Shaffer) (03/06/85)

I am trying to find out execution times for floating-point instructions
for a DEC PRO-350.  This is needed for analysis of some experiments
we conducted to compared predicted and actual execution times of some
signal-processing type algorithms on microprocessors.  So far, DEC has
been unhelpful.  It appears that the PRO-350 has a KEF11-CA microcode
option that adds some 46 f.p. instructions to the integer instruction
set, rather than the FPF-11 f.p. co-processor.  I found some times
listed for KEF11A microcode option in the 1979-80 DEC Microcomputer
Processor Handbook, but am suspicious of these old figures:
	ADDD add double		42.45 microsec
	SUBD subtract double	43.35 microsec
	MULD multiply double   193.05 microsec
	DIVD divide double     239.25 microsec.
There appears to be no logarithm instruction (would like times if there is
one).

I would appreciate any data or pointers on this (like: who knows at DEC,
what manual contains this info, etc.).

Related to this, we ran the same set of programs on the DEC PRO-350 and
on an IBM PC/XT, and have total times for both: for both, the programs
were written in C, and were identical.  The PRO was running Venix, the
PC/XT (with 8087) was running PC-DOS 2.02 and we used the DeSmet C compiler.
We were surprised that the PC/XT times were 20-50% FASTER than the PRO!
This seemed particularly odd, as the DeSmet compiler generates rather
inefficient 8087 code (subroutine calls for each operation).  Any comments
on this?

Thanks for any help anyone can give.

Phil Shaffer

P.S. I just talked with a "hardware support specialist" from DEC, and
he said (1) the PRO-350 has a FP-11 coprocessor (KEF-11-CA is the 
configuration number); (2) "the execution time is in the range of
1.11 MHz to 5 MHz depending on the function of the CPU."  He said
he couldn't be more specific; he obviously didn't know what he was
talking about.

Is anybody knowledgeable from DEC out there?

cdl@mplvax.UUCP (Carl Lowenstein) (03/11/85)

In article <2809@ncsu.UUCP> pls@ncsu.UUCP (Phillip L. Shaffer) writes:
>I am trying to find out execution times for floating-point instructions
>for a DEC PRO-350.  This is needed for analysis of some experiments
>we conducted to compared predicted and actual execution times of some
>signal-processing type algorithms on microprocessors.  
	As background information, the PRO-350 has the same CPU chip set
(J-11) as the 11/23.  One can add to this micro-coded floating-point
support, the KEF11.  This gives the same (46) added instructions as the
hardware floating-point co-processor (FPF11) but is not nearly so fast,
expensive, or power-consuming.  The times are indeed as you quote them:
>	ADDD add double		42.45 microsec
>	SUBD subtract double	43.35 microsec
>	MULD multiply double   193.05 microsec
>	DIVD divide double     239.25 microsec.
	checked in Microcomputers and Memories 1982 (EB-20912-20)
Note also that times go up if operands are in processor memory, rather
than in FPU registers.
>There appears to be no logarithm instruction
	True.  It's floating-point firmware support to emulate the hardware
processors that have been around since 1972 on 11/45's and up.
>We were surprised that the PC/XT times were 20-50% FASTER than the PRO!
	Look for inefficiencies in the code generator of your C compiler.
In a similar situation, code generated by the DEC Fortran IV compiler
(not optimized for this instruction set) is nearly 3x slower than code
generated by the DEC Fortran-77 compiler. (optimized)
	Given the tendency of C to do things in double precision at the drop
of a hat, there may be also a lot of un-needed type conversion going on.

-- 
	carl lowenstein		marine physical lab	u.c. san diego
	{ihnp4|decvax|akgua|dcdwest|ucbvax}	!sdcsvax!mplvax!cdl