• Please review our updated Terms and Rules here

Is there a case to be made for the 386?

I recall that in the weeks leading up to the much-anticipated 5150 introduction, a number of folks pointed to the just-released IBM lab computer (CS-9000) thought that it presaged what the 5150 might be. The same speculation occurred when the rumors of the JX surfaced. I thought both unlikely given the limited production (at that time) of the 68K, especially as compared with the number of second sources for the 8086/8088. My initial take on the PC was that by the time you totted up the nickel-and-dimeing of assembling a functional system, it was a lousy deal for the money. The NEC APC was a far better deal--and I almost bought one instead of the 5150. But IBM was Snow White and to their credit, they made it an open design. Had it been a closed design, I don't think it would have enjoyed the same success.
 
I think up to the 386, most of the x86 chips Intel released were tri-state multiplexed

FWIW, "Tri-state" doesn't have anything to do with multiplexing; it refers to a standard feature of IC logic where a chip can set an output to a high impedance state to effectively "disconnect" itself from the circuit. It's a vital and standard feature of any kind of bus-based architecture, IE whenever multiple devices sit on a common wire and take turns driving it. I mean, yes, tristate logic is a feature you need to make a multiplexer, but CPUs with non-multiplexed busses also (almost always*) support tristate on their address busses and control lines in order to allow busmastering by other devices.

(As a counter-example The original 6502 CPU didn't support tristating the address bus. Which is why practically all complex 6502-based computers have a set of 74LS244 or equivalent tristate buffers on the address lines. Some successors, like the WD65C02S and Commodore's 6510 used in the C64, added internal tristate.)

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.

The 80286 was the first x86 CPU with a demultiplexed bus. It's a significant reason it manages to be faster than its real-mode only half-sister, the 80186. (Both CPUs include improvements like having dedicated address calculation hardware, but the 186 bus cycle needs more time to complete because of the address latching step. The 8mhz Tandy 2000 would usually run about even on benchmarks with the original 6mhz IBM 5170, but the later zero-wait-state 6mhz 5162 would beat it.)

To be fair to the 386, being "only" roughly as cycle-efficient as the 286 isn't that much of a slam, the 286 was legit a pretty fast and efficient CPU when it came out, and the 386 compared pretty evenly with other CPUs of its generation, like the 68020. In terms of ISA/architecture it was a huge leap... at least in theory. The real shame is mostly that it took so long for mainstream software to really support it.

Motorola got it right with the 68000.

A dirty little secret about the 68000 is there are benchmarks out there on which the 286 will hang it out to dry; it's not actually *that fast* of a CPU, even compared to the 8086. (Apple engineers used to gripe about the 6502 being faster than it in certain circumstances. It's probably more precise to say the 6502 was more *consistent*, honestly, but for some of what Apple was doing the 6502 could in fact perform the necessary byte-size operations in fewer cycles.) It takes enough cycles to execute most instructions that having a multiplexed bus probably wouldn't have impacted its IPC that much. The reason it was so popular and long lived was more about its architecture than raw performance; by essentially emulating a 32 bit CPU it's a much more friendly architecture for higher level languages and big-memory applications than the segmented architectures of its 16 bit contemporaries.

That said, Motorola did probably make the right call with putting the 68000 in its big fat 64 pin package instead of resorting to multiplexing. The 8086's 40 pin package is kind of a joke when you consider how many pins it *actually* is to fully expand not only its data and address busses, but its status and control signals. Motorola could have shaved a few bucks on the package costs by multiplexing everything the way Intel did with the 8086, but considering their CPU die was already almost three times larger it wouldn't really have been worth the savings.
 
I guess on the subject of multiplexed CPU busses the 8008 was a particularly amazing example; it came in a package with only 18 pins despite having an 8 bit data bus and 14 bit address range. The chip has to spend four clock ticks (two T-states) just setting up the address bus before every read or write. (The very fastest single-byte instructions execute in ten clock ticks.)

Intel was really deeply in love with multiplexing in the 1970s. The 8080 might be the worst; the address bus is demultiplexed, but the control signals that indicate whether the machine cycle is a memory or I/O read or write are embedded on the data bus and need to be both latched and gated externally. (The 8086/88 also need external decoding to generate these signals, but it's *slightly* less gross.)
 
The 8080 with an 8224 and an 8228 was fairly simple to handle. Considering its age, it's not bad.

Without the 8228 it’s a mess, though. The 8085 and 8086/8088 minimum modes seem like significant improvements. It’s kind of funny because their schemes almost seem to have more in common with the 8008’s.
 
On synthetic benchmarks like Dhrystone MIPS a 486 can score almost 3x faster, clock for clock, than a 386; granted that spread usually didn't translate to the real world. A little under 2x was closer to reality for tasks that were too big to fit in the 486's onboard cache.
I resurrected an old Fuyuo 20VD mini 386 motherboard (2nd cousin to the Harry Swartz brand). It's presently setting atop of a piece old piece cardboard with the following:
1. AM386 DX/DXL-40
2. HyperDrive Pro 1GB DoD
3. Diamond SpeedStar VGA Rev (1)
4. 8x1 MB RAM
The board posts and the BIOS, so far, accepts the DoD @ 1024 cyl/120 MB. (we'll see). I need to sniff around and find a FDD and see if I can get it to boot to DOS, I don't have a case available right now and would have to tear another project down. Actually I do have a blappy desktop case that I could use, but I hate those things. Anyway, it would be strictly a DOS box with no Windows. The only thing likely to go on it is A few DOS utilities, Space Invaders and Leisure Suit Larry, I'd primarily use it to tinker with BASIC, as I still like to write little utilities that really don't do much, just like to plink.
 
I guess on the subject of multiplexed CPU busses the 8008 was a particularly amazing example; it came in a package with only 18 pins despite having an 8 bit data bus and 14 bit address range. The chip has to spend four clock ticks (two T-states) just setting up the address bus before every read or write. (The very fastest single-byte instructions execute in ten clock ticks.)

Intel was really deeply in love with multiplexing in the 1970s. The 8080 might be the worst; the address bus is demultiplexed, but the control signals that indicate whether the machine cycle is a memory or I/O read or write are embedded on the data bus and need to be both latched and gated externally. (The 8086/88 also need external decoding to generate these signals, but it's *slightly* less gross.)
Advent of Computing has a nice video on the 4004 and 8008:


I can't speak to the accuracy of what's presented (would be interested in hearing what other people think) but I thought it interesting.
 
What always kept me from the 386, is it's use-case similarities with the 486, but the lack of the things that made the 486 objectively better, when ti came to "retro".

Right now I have a 386SX-20 that also has a 486 Blue LIghtning CPU in it, and I can say, that Blue Lightning with a Co-Processor is very similiar to my stable of 486 machines, especially with the Blue Lightning enabled, but as a 386 SX it's more like a 286. It gets a pretty wide gamut of capabilities, but there are some drawbacks to the 386 machines, especially a 386 OEM machine with VLSI like the Compaq...

- Hard Disk Controller is considerably slower (standard IDE vs. VLB Super I/O Controller)
- Lack of 8K L1 Cache (or 16K in the DX4s case)
- no WriteBack Cache Options like some later 486 chips had
- Slower clock speeds in general (my chip is a BLX3 75MHz model, it runs at 60MHz in x3 because 20MHz Compaq)

That said, it runs MOST of the same software my 286 used to run and my 486s run, except anything with SVGA/VESA, anything like Ultima VII won't run, or is glacially slow, and anything that requires a lot more weight and the few 486 Instructions for better speed holds it back. That said, I've been running the 386 more lately in 486 mode because I"m in the garage a lot, and it's my garage machine - in part because it'll handle higher temperatures better than the 486 does.

In the Realm of Software.......

Links (web browser) - The 486 has a much easier time dealing with newer security like TLS 1.2 and SSL vs. the 386. One particular site I visit gets an SSL error on the 386, but not the 486s. Go figure.

Ultima VII Parts 1 & 2 - They run great on my 486 machines, I even found a way to get em' running in FreeDOS (sort of a hackish way), but they won't run on the 386SX even with the Blue Lightning Enabled, they just don't like that 386SX chip.

Emulators - Forget about it. NESticle runs TERRIBLY, worse than on my old 486 DX33 I started out messing with 486s with in 2001.

That said, MOST of my favorite stuff will run on a 386 though: GetLost, Monkey Island 1&2, Leisure Suit Larry 1-6, the Hoyle Games Pre-Windows, Flying Tigers 1 & 2, Tank Wars. Ultima VI and older...that stuffs all fine, and that's quite alot. Those all run quite well, even as a 386SX without the Evergreen Upgrade kicked in.
 
I find 386 machines these days to be more stable than 486 because (other than some PS/2 models with MCA bus) you are stuck with all ISA cards at one specific speed.
 
I find 386 machines these days to be more stable than 486 because (other than some PS/2 models with MCA bus) you are stuck with all ISA cards at one specific speed.

Probably the most stable Win95 machine I ever had was a PS/2 Model 80. Only a 60MB SCSI HDD and 10MB of RAM. Bog slow? Yes... but rock solid and never crashed. Maybe because it had the 13-floppy version of Win95 on it. Still wish I had it up and running.
 
As with anything the answer is: It depends. What would be your interest in obtaining an 80386 based system today? A specific piece of older software which runs optimally on it? Nostalgia? Something else?

I just purchased an 80386 DX system about a month ago (I purchase an 80386 SX system about six months ago). I purchased the latter for nostalgia reasons (it was something I wanted when I was younger) and the former because it was a DX based system (it was also a no name, customer built system using generic parts so I can more easily swap components). I also have an 80486 SX (again, Packard Bell). I can change out the processor with one of the many DX variants I have.

I wanted an 80386 DX based system as, IMO, it represents a solid foundation upon which PC technology started to come into its own. The only thing I really want to use it for is to try out early UNIX based operating systems (like BSD, Linux) to see how they ran on such hardware. There will be other software which I intend to play with along the way but the operating system stuff is really why I purchased them (I purchased the 80486 system because finding a reasonably priced [IMO] 80386 based system wasn't panning out).
 
It's been a while since I looked but 386 systems or motherboards at least are much more economical then a 486 VLB system or board because gamers prefer the 486.

Years ago, I used to snag cheap 386 boards just because they had a different FPU installed then what I had at the time. You can also get the 486 in a 386 socket chips as well.
 
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.
I remember comparing 33 MHz 386DX and 486DX systems running UNIX (so both were running identical 32 bit code) and the 486 took half the time to compile the 50K or so lines of C that I was working with. That was as real world a comparison as I needed.
 
Back
Top