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