[net.micro] Intel's Dubious Timings

chip@dartvax.UUCP (Brig ) (04/24/84)

We have had occasion to compare Intel's published 8088 timings
with actual 8088's.  The published timings are simply false.
They are VERY flattering.  In general, they claim instructions
take 2 clocks, where in fact most take 8.

The book specifically states that 8088 timings may be off by
"up to 10%".  We have found 80-100% to be closer.  Always slower.

I would take Intel timings with a very large dose of salt.
They are not exactly... well, come to think of it... they are
actually lying.  I hope they clean up their act someday.

      Brig Elliott   ..decvax!dartvax!chip

ez@intelca.UUCP (Ed Zager) (04/26/84)

>
>  We have had occasion to compare Intel's published 8088 timings
>  with actual 8088's.  The published timings are simply false.
>  They are VERY flattering.  In general, they claim instructions
>  take 2 clocks, where in fact most take 8.
>  
>  The book specifically states that 8088 timings may be off by
>  "up to 10%".  We have found 80-100% to be closer.  Always slower.
>  
>  I would take Intel timings with a very large dose of salt.
>  They are not exactly... well, come to think of it... they are
>  actually lying.  I hope they clean up their act someday.
>
>        Brig Elliott   ..decvax!dartvax!chip
>

     The first thing Mr. Elliott needs to learn is the difference between 
TIMINGS, and EXECUTION SPEED, or EXECUTION TIME.  Execution speed 
or execution time is the direct measure of how fast a processor 
will complete a task.  This is what was discussed in his article.
This is NOT!! a device's timings.  A device's timings are the signal
requirements of the system to properly drive the device and the 
device's signal requirements to properly drive the system.  All of 
Intel's devices are tested extensively to guarantee these device timings.

     The published execution times are in the July 81 "iAPX88 Book" 
on pages 2-49 through 2-165, in the 1983 "iAPX88 Book" on pages
2-45 through 2-161, and in the August 1981 "iAPX 86,88 User's Manual" 
on pages 2-51 through 2-67.  The only instructions specified to take
2 clocks are register to register type of instructions.  These 
instructions will take longer to execute if they are not in the queue. 
An example of this is during the special case of executing a long string
of register to register instructions.  The prefetcher only gets to prefetch 
code while the execution unit is doing effective address calculations for
a memory read or write.  Since register to register operations
do not perform bus cycles, the prefetcher does not get to prefetch
code.  But, look at what happens in "normal" code, a piece of data
is loaded into a register, some operations are performed on the register
and the data is put back into memory.  We have performed enough memory
operations to keep the queue full or near full.
The text in the "iAPX 86/88 User's guide on pages 2-48 through 2-51
explains how to calculate instruction execution time and also
explains additional factors which effect execution time.
"Several additional factors can increase actual execution time over 
the figures shown in table 2-21.  The time provided assumes that the
instruction has already been prefetched and that it is waiting in the
instructions queue, an assumption that is valid in most, but not all,
operating conditions."  The text also illustrates the other factors 
which effect execution speed.  The text also states the following:
"With typical instruction mixes, the time actually required to execute
a sequence of instructions will TYPICALLY be within 5-10% of the sum
of the individual timings given in table 2-21.  CASES CAN BE 
CONSTRUCTED, HOWEVER, IN WHICH EXECUTION TIME MAY BE MUCH HIGHER
THAN THE SUM OF THE FIGURES PROVIDED IN THE TABLE.
(my emphasis added.  From iAPX86/88 User's Manual pg 2-51)  It would seem
that Mr. Elliott does not understand the meaning of the word "typically",
and he also has problems with selective reading (he only sees what he
wants to).  As Intel's documentation states the execution times CAN be
longer than than the typical times given, However, both our customer's
and our benchmarks show this is NOT the case in MOST code.  What Mr. Elliott
has done is made an improper generalization of one worst case example.

I feel that transmitting an article such as Mr. Elliott's on a nation-wide
network was a terribly irresponsible thing to do, since Mr. Elliott
didn't seem to bother to get his facts straight first.

-- 
Edward Zager, Intel, Santa Clara, Ca.
{pur-ee,hplabs,ucbvax!amd70,ogcvax!omsvax}!intelca!ez

freund@nsc.UUCP (Bob Freund) (04/27/84)

Getting pretty sensitive, aren't we.

Bob Freund
National Semiconductor

rpk@ecsvax.UUCP (04/30/84)

[ 0000H  <-- hex sign to ward off evil mailers ]

	It would be nice if Intel could ship microprocessors as quickly
as their employees respond to net criticism.

	-Dick    ...decvax!mcnc!ecsvax!rpk

gwes@inmet.UUCP (05/01/84)

#R:intelca:-25300:inmet:5800050:000:1808
inmet!gwes    Apr 30 16:15:00 1984

-Null cosmos est-
Re "typical" speeds & instruction mixes:

Mr. Elliott has a point:  Chip manufacturers have habitually exaggerated
the real usefulness of their products by publishing "typical" timings
in BIG print, and the minimum/maximum (as appropriate) in small print in
the back of the spec sheet.  Anyone who reads such a spec sheet should
look VERY carefully for the words "minimum", "maximum", and especially
"guaranteed".

I have tested four computer models for real execution speed, both in
standalone tests and "typical mixes".  Of course, my typical mix is not
the manufacturers' - I just took the three or four programs which showed
up on accounting runs as taking the major (.gt. 50%) of system time.
In all cases the manufacturers' timings were optimistic, usually by
30% or more.

The reaction of the Intel person (sorry, name rolled off screen) is
unfortunate at best.  Data sheets should CLEARLY represent the real
extremes of performance.  Recently Fairchild and Texas Instruments have
begun documenting their AS, FAST, and ALS TTL lines with MIN and MAX
times only - no "typical".  This is a great service to the engineering
community and should be taken up by all manufacturers.  Too often
I have had to "fix" a design in which the engineer believed the
"typical" timings.

One reason to use a machine like the 286 would be for very high speed
manipulations - perhaps as a coprocessor to a 68K or other useful machine.
(Prejudice shows here...)  The fact that hand-coding a high speed loop
might have no effect because the prefetch was defeated would be an
expensive lesson to learn.

In short - marketing "hype" has no place on data sheets - guaranteed
performance should be the data in big print.  The "typical mix"
is mostly mythical.

	Geoff Steckel
	(inmet!gwes or ima!inmet!gwes)