• Please review our updated Terms and Rules here

Is there a case to be made for the 386?

I went from an AMD 384DX40 to a Cyrix 486 with the stuck-on green heatsink and no fan (486dx40 maybe forget). and kept upgrading to a DX/2 80, 120. I fried the board putting the CPU in 90 degrees off (only time I ever did that) and ended up getting a 486 PCI board and a 486/133 OC to 160 which I used for a long time until I went to a Cyrix 166+ which ran too hot, and I traded it back for an Intel P133.

Back in the 486 era there were noticeable speed increases going from DX to DX/2 to DX/3 and the CPUs were pretty cheap if you used Cyrix or AMD. You could mail order a CPU and use it for 6 months then sell it off for most of what you paid for it and buy a faster one.
 
My Intel keyfob has both chips--the 80386 and the 80486 encapsulated in resin for the ages. The surprising thing is the difference in size between the two--the 486 die looks to be almost 4x the area of the 80386.
Cache and FPU take up some space even today.
 
My Intel keyfob has both chips--the 80386 and the 80486 encapsulated in resin for the ages. The surprising thing is the difference in size between the two--the 486 die looks to be almost 4x the area of the 80386.
Don't drop it on your toes. I remember an article from a while ago that said Intel was anxious to kill the 386/40 as its performance was as good, if not better, than the 486SX/25 and they, Intel, thought it would be detrimental toward sales. It's still a great gamer for that era and if you still like to dabble in BASIC, it's the way to - crisp and fast.
 
The 386DX/40 had a very long life on budget PC's and a much longer life in embedded applications (along with the 386SX chips that topped out at 40Mhz as well).

The DX/40 was a 3W CPU while the SX40 was 1.5W or so and both came in surface mount varieties.
 
My Intel keyfob has both chips--the 80386 and the 80486 encapsulated in resin for the ages. The surprising thing is the difference in size between the two--the 486 die looks to be almost 4x the area of the 80386.

Any chance you'd like to share a picture of this? Sounds like a really neat chotchkey.
 
We got quite of few versions of those keychain fobs when I worked at Qualitas back in that era.
I sold all mine on eBay years ago, foolishly.
 
So what I was thinking was something like this, you guys have the knowledge so let's write it down!

8088 to 8086 - ? % faster
8086 to 80286 - ? % faster
-or-
8088 to 80286 - ? % faster (if a more common comparison)
80286 to 80386 - ? % faster
80386 to 80486 - ? % faster
80486 to Pentium - ? % faster

It doesn't have to be a percentage (which can be confusing), maybe a times factor would be better such as 1.5x faster.

I know there are always different benchmarks, ways to test, and different ways a system gets performance, but a rounded guess would be pretty nice. So an 80286 system on average vs an 80386 system. The one thing i want to remove from the guess is a clock speed difference leaving only the CPU and design improvements shown.

One example is a search showed that Intel at one point stated that the 10 MHz 8086 has 10x the performance of a 2 MHz 8080. Well, the clock difference is 5x the performance meaning that the 8086 is 2x the performance of the 8080 clock for clock (according to Intel).
 
There are other factors that affect performance besides clock speed like memory speed and cache size. Additionally 386+ gives you 32-bit registers and a flat memory model. So benchmarking 8088 code on those CPUs wouldn't show the full performance improvements that could be gained.

That said, TopBench has a large database of tested systems if you want to compare scores.
 
Not only that, but going from an 8 bit ISA bus to a 16 bit one made significant improvements in video and storage bandwidth. In particular, things like bus mastering were possible.
 
8088 to 8086 - ? % faster

It's probably pretty pointless to bother with this one, although it's worth calling out a misconception here. You'll see a lot of people claiming that the 8086 was "twice as fast" at the 8088, but clock for clock it wasn't even close. (Most of the 8086-based MS-DOS machines that got compared to the IBM PC ran at ~8mhz instead of 4.77mhz.) The wider bus saved a few machine cycles, but considering an 8088/8086 can't really do anything in less than a minimum of 4/3 cycles respectively, with most instructions taking many more, the actual difference between the two CPUs was a lot smaller than you'd expect.

Another issue you run into with comparisons like this is code alignment; kind of unusually for 16 bit processors Intel's CPUs allow byte-misaligned code; in the worst case you could probably intentionally write a binary that would be barely faster on an 8086 than an 8088 because you'd be forcing an extra memory cycle for every instruction fetch.
 
..and then there's the matter of how memory refresh is accomplished. The 5150, 5160 use a somewhat brain-dead method, employing the DMA controller triggered by the counter-timer. 8086 systems may have used something more sophisticated, such as a dedicated 8203 DRAM controller. Really no apples-to-apples comparison can be meaningfully made.
 
So what I was thinking was something like this, you guys have the knowledge so let's write it down!

8088 to 80286 - ? % faster (if a more common comparison)
80286 to 80386 - ? % faster
80386 to 80486 - ? % faster
80486 to Pentium - ? % faster

"MIPS" is a notoriously prone-to-fudging datapoint, since it can be drastically affected by the exact instruction mix, compiler, whatever, but Here are claimed MIPs figures for Intel CPUs from the 4004 to the Pentium 4. If we take these as ballpark figures, here's a crack at your ratios; when the same clock speed isn't available across both CPUs I'll multiply the score of the slower one by a factor corresponding with the clock speed difference.

8088 to 80286 - 3.4x faster (7mhz)*
80286 to 80386 - 1.6x (16mhz)
80386 to 80486 - 2.5x (33mhz)
80486 to Pentium - 2.24x (100mhz)

(* MIPS is claimed to be "1" for a 7mhz 80286, table claims 0.2 for a 4.8mhz 8088, 7/4.8=1.46, 0.2x1.46 = 0.29, 1/0.29=3.4. 3.4x faster per clock feels a little high to me, but not totally out of touch with reality. The 8088/86 are *pretty slow* CPUs.)

Note the relatively small per-clock gain between the 80286 and 80386; this is why those 20mhz Harris 286s had their moment in the limelight back in the day. The problem with benchmarks like this, though, is they ignore things like how in theory at least there are programs that can run much more efficiently on a 386 than they can on a 286 because they don't have to deal with segmented memory in protected mode... but, sure, for a DOS user this ratio is about right; 386s were mostly faster than 286s because they were clocked higher, not because the CPU was more efficient. The 486, by comparison, was a huge leap forward.

Again, in the real world these gains are too high, this is a CPU-only benchmark, and one small enough to be fooled by caching into overstating the results. When you figure in RAM speed limitations, bus constraints, etc, it was pretty rare for a 486 to really be twice as fast as a 386 of the same clock, but in *theory* at least it was a much more efficient CPU. Although... as these figures indicate, you can make a fair case that the biggest generational improvement in Intel x86 history was between the 8088/86 to the 80286. The original x86 design *really* suffered from having to waste so many cycles using its ALU to do effective address calculations on every memory access, adding dedicated hardware for that alone was a huge improvement.
 
In the super world, the bogus measurement was FLOPS (Floating-point operations per second). Attach the appropriate "mega", "giga", "tera" etc. prefix. Of course, this says nothing about the specifics (e.g. pecision) of the operation. As a matter of record, the original name for the ETA-10 nitrogen-cooled super of the 1980s, was the "GF-10" for the design goal of 10 gigaflops.
In the supercomputing world, MIPS is meaningless, because most of these systems are SIMD type (single instruction, multiple data); i.e. vector type.

As regards the key fob, I give you these taken with a webcam:

386.jpg486.jpg
 
It's probably pretty pointless to bother with this one, although it's worth calling out a misconception here. You'll see a lot of people claiming that the 8086 was "twice as fast" at the 8088, but clock for clock it wasn't even close. (Most of the 8086-based MS-DOS machines that got compared to the IBM PC ran at ~8mhz instead of 4.77mhz.) The wider bus saved a few machine cycles, but considering an 8088/8086 can't really do anything in less than a minimum of 4/3 cycles respectively, with most instructions taking many more, the actual difference between the two CPUs was a lot smaller than you'd expect.

Don't forget all of the pin multiplexing nonsense. I think up to the 386, most of the x86 chips Intel released were tri-state multiplexed, where some of the address and data lines were on the same pins and had to be accessed in different addressing modes. The 386SX had it the worst, a 32 bit CPU with a tri-state 16 bit bus. And the super early models that couldn't properly run 32 bit software due to a serious hardware bug. The 386DX was also hampered by the tri-state bus, it would have been a much faster part if it had dedicated address and data lines.

Motorola got it right with the 68000. Too bad the later chips in the 68k line turned into a mess.
 
Having a contract involving writing code for the 68K and the 8086 at the same time, I really, really liked the 68K. 32-bit general registers separate from the address ones, very orthogonal organization and no screwing around with segmented addressing. At that time, I thought the need for Intel to preserve the 8080 model was a big misstep. But you use what you're given--after a certain amount of time, it's just another instruction set with its own personality.
 
It would be an interesting alternate timeline if the IBM 5150 had gone with the 68000 instead of the 8088.

The 68k was wildly popular in the arcade and home consoles and was used well into the end of the 90s.
 
Don't forget all of the pin multiplexing nonsense. I think up to the 386, most of the x86 chips Intel released were tri-state multiplexed, where some of the address and data lines were on the same pins and had to be accessed in different addressing modes.
Intel compensated for the multiplexed bus situation with Pentium, a 32-bit CPU with a 64-bit bus.

Bus width is why the Pentium Overdrives for the 486 systems underperformed; even at 83MHz, the true 64-bit bus version of the Pentium at lower speed could outperform the 32-bit bus Overdrive version. (Some folks back then even called Pentium a 64-bit processor because of the bus width; that's like calling the 32-bit 386SX a 16-bit processor or a 16-bit 8088 an 8-bit processor.... but this is an age-old argument, as to what defines the bittedness of a processor, with these CPUs (like the 68000 as well, 32-bits with a 16-bit bus) bending the previous rules.)
 
It would be an interesting alternate timeline if the IBM 5150 had gone with the 68000 instead of the 8088.

The 68k was wildly popular in the arcade and home consoles and was used well into the end of the 90s.
The 68000 IBM PC would have been regarded as another overpriced IBM failure and would have resulted in John Akers slashing IBM's payroll 5 years earlier.
 
Back
Top