The Intel 386
- Paul Monroe
- Jan 8, 2023
- 3 min read
The i386 (Codename: P3) is a 32-bit microprocessor that was released by Intel in 1985. The 386 was the 32-bit extension of the 80286 architecture (it had 32-bit address and data busses), but it also introduced key enhancements: an integrated memory management unit (MMU) and, in addition to real and protected modes, which were available in the 80286, the i386 introduced 'virtual' mode (or virtual 8086 mode / VM86) which made it possible to run real mode programs in a protected environment. Lastly, the ability for the i386 to appear to have a flat memory model in protected mode, despite the fact that it uses a segmented memory model, was probably the most important feature change for the x86 processor family until AMD introduced the x86-64 (i.e. 64-bit x86) architecture in 2003. For this reason, the i386 instruction set is still the common denominator for all 32-bit x86 processors.
The i386 was made up of 275 000 transistors, fabricated at 1.5µm and later 1µm, into a 132-pin PGA (or PQFP) package, and clocked in at 12 - 40MHz. It could execute most code written for its predecessors, and was launched on the Compaq Deskpro 386, marking the very first time a major update to the 'IBM PC Compatible' standard was updated by a company other than IBM. Manufacturing of the i386 only ceased in September 2007 after 22-years of production, at which time its main uses were in embedded systems for aerospace and musical instruments.

The i386 was a 32-bit processor, with 32-bit address and data busses. The core was made up of four functional units: the bus unit, the memory management unit (which included an address unit), the instruction unit (prefetch and decode) and the execution unit (the ALU). Like the 286, floating point instructions were offloaded to an optional external floating point unit (FPU), or executed through software emulation.

Intel also introduced a cut-down version of the 386 called the 386SX which had a 16-bit external data bus. Internally, the core was identical, but only 24 of the pins on the address bus were connected (limiting addressing to 16MB, which wasn't a constraint at the time). That, combined with the 16-bit data bus, simplified motherboard layouts reducing total cost, but also reduced performance. To avoid confusion, the 'full-fat' 386 was renamed to the 386DX at this time.
While the 386 had considerably improved capabilities, the 386 was sometimes slower than the 286 in 16-bit applications, and was often bottlenecked by the 16-bit ISA bus. The 3-stage pipeline of the 386 "was loosely coupled,” as before, but with an even larger 16-byte instruction prefetch buffer. Several new instructions were added to the 386 too.
Like the 286, the 386 supported an optional 80387 math coprocessor which offloaded complex and floating point mathematical operations. Several manufacturers designed 387 FPUs with minor differences in performance.
AMD introduced its compatible Am386SX and Am386DX processors in 1991 after navigating many legal obstacles, as did Cyrix with their Cx486 (a quasi-386/486 with included on-chip cache) , Chips and Technologies with their Super386 (developed using reverse engineering), and IBM 386SLC (variants of Intel's design which contained large on-chip cache).
Windows 95 and Windows NT 3.51 were the last Microsoft operating systems to support the 386 (though a 486 was recommended), and the the Linux kernel officially dropped support for its progenitor in December 2012, 27-years after the CPU was introduced. Linus Torvalds commented at the time, "I'm not sentimental. Good riddance."
Codename: -
Transistors: 275 000
Fabrication: 1µm
Die Size: 42 mm2
Clockspeed: 12 - 40MHz
L1 I-Cache: -
L1 D-Cache: -
L2 Cache: -
FPU: External 80387
Cores/Threads: 1
Decode Rate: 1
Dispatch Rate: 1
Issue Rate: 1
Execution Ports:1
ROB Entries: -
Estimated IPC: -
Estimated MIPS: 4.3MIPS @ 33MHz









Comments