Early x86 Processor Models

Last update: 2024-01-17 22:54:22 +0800 +0800
Available translations: 日本語 / 中文(简体) / 中文(繁體)

Processor models share an ISA lineage but differ in buses, packages, clocks, integrated peripherals, and microarchitecture. Software compatibility therefore does not imply identical board-level behavior.

Intel 8086 and 8088 #

The 8086 and 8088 execute the same 16-bit instruction set and use a 20-bit address space, providing 1 MiB of physical memory. Their principal external difference is the data bus: the 8086 has a 16-bit bus, while the 8088 has an 8-bit bus. The reduced bus width made the 8088 easier to connect to contemporary low-cost peripherals, at the cost of additional bus cycles for 16-bit transfers.

Address and data pins are multiplexed on both designs, so external latches retain addresses during a bus cycle. The MN/MX input selects minimum mode for a single-processor system or maximum mode for systems using an external bus controller and coprocessors.

Segments begin on 16-byte boundaries and are addressed through CS, DS, SS, and ES. A far pointer stores an offset and a segment value; it is not a linear 32-bit address.

An x86 processor package

80186 and 80188 #

The 80186 and 80188 retain the 8086/8088 core distinction while integrating peripherals such as timers, interrupt control, DMA, and chip-select logic. Their integration suited embedded systems, but PC-compatible systems used separate peripheral designs and did not adopt them as direct PC CPU replacements.

The pair also adds instructions used by later x86 processors, including PUSHA, POPA, immediate forms of PUSH, signed-immediate IMUL, ENTER, LEAVE, BOUND, and string-port I/O. As with the earlier pair, the 80186 has a 16-bit external data bus and the 80188 has an 8-bit bus.

Model, Package, and Clock Boundaries #

A processor name does not identify one physical part. Intel shipped members of these families in multiple packages and speed grades, while compatible vendors made further implementations. A clock rating describes an input or operating frequency under the relevant datasheet, not instructions per second. Bus width, wait states, prefetch behavior, and peripheral timing can make equal-clock parts behave differently.

Identification on Modern Processors #

Modern x86 processors report a family, model, and stepping through CPUID, provided the processor implements that instruction. Operating systems combine these identifiers with feature bits to select mitigations, performance policies, and workarounds. Feature bits, not family numbers, are the correct basis for choosing an ISA instruction because different models can expose different optional extensions.

Electrical pin assignments, package rules, and timing requirements come from the specific processor datasheet. ISA manuals describe the software contract but do not substitute for those board-level documents. Historic model names likewise do not imply real, protected, compatibility, or 64-bit execution mode; software must establish the current mode and query supported features.

Comments

Read or comment on GitHub (sign-in required to comment)