Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!cs.utexas.edu!sdd.hp.com!elroy.jpl.nasa.gov!ncar!gatech!bloom-beacon!eru!hagbard!sunic!mcsun!cernvax!chx400!bernina!neptune!inf.ethz.ch!brandis From: brandis@inf.ethz.ch (Marc Brandis) Newsgroups: comp.sys.ibm.pc.misc Subject: Re: 386 vs 386SX Message-ID: <17755@neptune.inf.ethz.ch> Date: 11 Dec 90 09:07:06 GMT References: <34117@netnews.upenn.edu> <1990Dec5.211220.13194@msuinfo.cl.msu.edu> <1990Dec10.024523.21545@xrtll.uucp> <1990Dec10.161538.16651@thyme.jpl.nasa.gov> Sender: news@neptune.inf.ethz.ch Reply-To: brandis@inf.ethz.ch (Marc Brandis) Distribution: comp.sys.ibm.pc.misc Organization: Departement Informatik, ETH, Zurich Lines: 56 In article <1990Dec10.161538.16651@thyme.jpl.nasa.gov> kaleb@thyme.jpl.nasa.gov (Kaleb Keithley ) writes: >In article <1990Dec10.024523.21545@xrtll.uucp> silver@xrtll.UUCP (Hi Ho Silver) writes: >>In article <1990Dec5.211220.13194@msuinfo.cl.msu.edu> draper@buster.cps.msu.edu (Patrick J Draper) writes: >>$In my experience, running MS-DOS an SX is equally fast as a full 386. I >>$think that is because MS-DOS is a 16-bit system, and runs in 16 bit real >>$mode of 386's. Therefore there is no speed advantage from the 32 bit >>$bus. I may be wrong, and I'm sure someone will correct me if I am. >> >> You're just a little off. The 386DX does its instruction fetches >>32 bits at a time, whereas the 386SX (obviously) can't fetch more than >>16 bits at a time. This gives the DX somewhat higher performance for >>the same clock rate on 16-bit software. >> > >For what it's worth, I get the following Dhrystone's: >(Yeah, I know Dhrystone isn't the do all benchmark; anyone got the >source to Bytes' PC benchmarks?) > >16mhz 386SX 20mhz 386DX 25mhz 486 Sun 4/330 >5000 8000 28000 24000 > Without any further information these benchmarks do not really tell you anything about the relative performance of an SX to a DX or even a 486 or a Sun 4. What kind of memory system do the used systems have, are they cached or not, how fast is the memory, under which OS were the benchmarks run, what compilers were used ... ? There are a lot of open variables, which affect the performance a lot. I once ran some computational intensive programs on both a 386 SX and a 386 DX, both at 16 MHz, both without a cache and 100 ns RAM. The programs used were identical, compiled with a 16-bit compiler and running under DOS. I noticed a speed difference of about 5% in favor for the DX. This sounds reasonable to me as the 386 is not yet such a fast machine that it becomes heavily bound by the available instruction fetch bandwidth. Note that data references (aligned) do not get any profit out of the 32-bit bus of the DX. From some data about programs on the i80x86 family, I remember that the average instruction length for 16-bit DOS programs is between 2 and 3 bytes, while the average cycles per instruction is a between four and five. Therefore you need only slightly more than one byte of instruction every memory cycle (which is two CPU cycles), or it is almost sufficient to keep the CPU busy to fetch a 16-bit word every second memory cycle, which leaves enough bandwidth for data references. Note that branches do not change the picture a lot, as branches are already very slow on the 386 (9 cycles), so that there should be enough time to fetch the instructions at the target. Marc-Michael Brandis Computer Systems Laboratory, ETH-Zentrum (Swiss Federal Institute of Technology) CH-8092 Zurich, Switzerland email: brandis@inf.ethz.ch