Gecko's CPU Library

Intel 80386 processors

Introduction: October 1985 (80386DX), June 1988 (80386SX), October 1986 (80386SL), August 1994 (80386EX)

The Intel 80386 (normally abbreviated as 386) caused quite a stir in the PC industry because of the vastly improved performance it brought to the personal computer. Compared with 8088 and 286 systems, the 386 chip offered greater performance in almost all areas of operation. The 386 is a full 32-bit processor optimized for high-speed operation and multitasking operating systems. Intel introduced the chip in 1985, but the 386 appeared in the first systems in late 1986 and early 1987. The Compaq Deskpro 386 and systems made by several other manufacturers introduced the chip; somewhat later, IBM used the chip in its PS/2 Model 80. The 386 chip rose in popularity for several years, which peaked around 1991. Obsolete 386 processor systems are mostly retired or scrapped, having been passed down the user chain. If they are in operating condition, they can be useful for running old DOS or Windows 3.x–based applications, which they can do quite nicely.

The 386 can execute the real-mode instructions of an 8086 or 8088, but in fewer clock cycles. The 386 was as efficient as the 286 in executing instructions, which means that the average instruction took about 4.5 clock cycles. In raw performance, therefore, the 286 and 386 actually seemed to be at almost equal clock rates. Many 286 system manufacturers were touting their 16MHz and 20MHz 286 systems as being just as fast as 16MHz and 20MHz 386 systems, and they were right! The 386 offered greater performance in other ways, mainly because of additional software capability (modes) and a greatly enhanced memory management unit (MMU).

The 386 can switch to and from protected mode under software control without a system reset - a capability that makes using protected mode more practical. In addition, the 386 has a new mode, called virtual real mode, which enables several real mode sessions to run simultaneously under protected mode. The protected mode of the 386 is fully compatible with the protected mode of the 286. The protected mode for both chips often is called their native mode of operation, because these chips are designed for advanced operating systems such as OS/2 and Windows NT, which run only in protected mode. Intel extended the memory-addressing capabilities of 386 protected mode with a new MMU that provided advanced memory paging and program switching. These features were extensions of the 286 type of MMU, so the 386 remained fully compatible with the 286 at the system-code level. The 386 chip's virtual real mode was new. In virtual real mode, the processor could run with hardware memory protection while simulating an 8086's real-mode operation. Multiple copies of DOS and other operating systems, therefore, could run simultaneously on this processor, each in a protected area of memory. If the programs in one segment crashed, the rest of the system was protected. Software commands could reboot the blown partition.

Numerous variations of the 386 chip exist, some of which are less powerful and some of which are less power hungry. The following sections cover the members of the 386-chip family and their differences.

386DX processors

The 386DX chip was the first of the 386 family members that Intel introduced. The 386 is a full 32-bit processor with 32-bit internal registers, a 32-bit internal data bus, and a 32-bit external data bus. The 386 contains 275,000 transistors in a VLSI (very large scale integration) circuit. The chip comes in a 132-pin package and draws approximately 400 milliamperes (ma), which is less power than even the 8086 requires. The 386 has a smaller power requirement because it is made of CMOS (complementary metal oxide semiconductor) materials. The CMOS design enables devices to consume extremely low levels of power.

The Intel 386 chip was available in clock speeds ranging from 16–33MHz; other manufacturers, primarily AMD and Cyrix, offered comparable versions with speeds up to 40MHz. The 386DX can address 4GB of physical memory. Its built-in virtual memory manager enables software designed to take advantage of enormous amounts of memory to act as though a system has 64TB of memory (a terabyte, or TB, is 1,099,511,627,776 bytes of memory, or about 1,000GB).

386SX processors

The 386SX was designed for systems designers who were looking for 386 capabilities at 286 system prices. Like the 286, the 386SX is restricted to only 16 bits when communicating with other system components, such as memory. Internally, however, the 386SX is identical to the DX chip; the 386SX has 32-bit internal registers and can therefore run 32-bit software. The 386SX uses a 24-bit memory addressing scheme like that of the 286, rather than the full 32-bit memory address bus of the standard 386. The 386SX, therefore, can address a maximum 16MB of physical memory rather than the 4GB of physical memory that the 386DX can address.

Before it was discontinued, the 386SX was available in clock speeds ranging from 16 to 33MHz. The 386SX signaled the end of the 286 because of the 386SX chip's superior MMU and the addition of the virtual real mode. Under a software manager such as Windows or OS/2, the 386SX can run numerous DOS programs at the same time. The capability to run 386-specific software is another important advantage of the 386SX over any 286 or older design. For example, Windows 3.1 runs nearly as well on a 386SX as it does on a 386DX.

386SL processors

The 386SL is another variation on the 386 chip. This low-power CPU had the same capabilities as the 386SX, but it was designed for laptop systems in which low power consumption was needed. The SL chips offered special power-management features that were important to systems that ran on batteries. The SL chip also offered several sleep modes to conserve power. The chip included an extended architecture that contained a System Management Interrupt (SMI), which provided access to the power-management features. Also included in the SL chip was special support for LIM (Lotus Intel Microsoft) expanded memory functions and a cache controller. The cache controller was designed to control a 16–64KB external processor cache. These extra functions account for the higher transistor count in the SL chips (855,000) compared with even the 386DX processor (275,000).

The 386SL was available in 25MHz clock speed. Intel offered a companion to the 386SL chip for laptops called the 82360SL I/O subsystem. The 82360SL provided many common peripheral functions such as serial and parallel ports, a direct memory access (DMA) controller, an interrupt controller, and power-management logic for the 386SL processor. This chip subsystem worked with the processor to provide an ideal solution for the small size and low power-consumption requirements of portable and laptop systems.

RapidCAD processors

The RapidCAD is not a coprocessor, strictly seen, although it was marketed as one. Rather, it is a full replacement for a 80386 CPU: basically, an Intel 486DX CPU chip without the internal cache and with a standard 386 pinout. RapidCAD is delivered as a set of two chips. RapidCAD-1 (S-Spec: SZ624) goes into the 386 socket and contains the CPU and FPU. RapidCAD-2 (S-Spec: SZ625) goes into the coprocessor (387) socket and contains a simple PAL(Programmable Array of Logic) whose only purpose is to generate the FERR signal normally generated by a coprocessor (this is needed by the motherboard circuitry to provide 287 compatible coprocessor exception handling in 386/387 systems). The RapidCAD instruction set is compatible with the 386, so it doesn't have any newer, 486-specific instructions like BSWAP. However, since the RapidCAD CPU core is very similar to 80486 CPU core, most of the register-to-register instructions execute in the same number of clock cycles as on the 486.

RapidCAD's use of the standard 386 bus interface causes instructions that access memory to execute at about the same speed as on the 386. The integer performance on the RapidCAD is definitely limited by the low memory bandwidth provided by this interface (2 clock cycles per bus cycle) and the lack of an internal cache. CPU instructions often execute faster than they can be fetched from memory, even with a big and fast external cache. Therefore, the integer performance of the RapidCAD exceeds that of a 386 by, at most, 35%. While CPU and integer instructions often execute in one clock cycle on the RapidCAD, floating-point operations always take more than seven clock cycles. They are therefore rarely slowed down by the low-bandwidth 386 bus interface; Tests show a 70%-100% performance increase for floating-point intensive benchmarks over a 386-based system using the Intel 387DX math coprocessor. This is consistent with the SPECfp rating reported by Intel. The 386/387 at 33MHz is rated at 3.3 SPECfp, while the RapidCAD is rated at 6.1 SPECfp at the same frequency, an 85% increase. This means that a system that uses the RapidCAD is faster than any 386/387 combination, regardless of the type of 387 used, whether an Intel 387DX or a faster 387 clone. The diagnostic disk for the RapidCAD also gives some application performance data for the RapidCAD compared to the Intel 387DX.

RapidCAD is available in 25MHz and 33MHz versions. The typical power consumption of the 33MHz RapidCAD is 3500 mW (max) and 2.6W typical, which is the same as for the 33MHz 486DX. A Cyrix 387 is around 2.2W, so the RapidCAD does chew up more power. The RapidCAD-1 is packaged in a 132-pin PGA, just like the 80386, and the RapidCAD-2 is packaged in a 68-pin PGA like a 80387 coprocessor.

The RapidCAD-1 contains 800,000 transistors and is produced on a 0.8µ process.

Source: Upgrading and Repairing PCs (13th Edition) by Scott Mueller.