X86

From Citizendium
Revision as of 14:55, 7 July 2009 by imported>Troy Martin (started "Modes of Operation", explained a bit about the x86 registers.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
This article is a stub and thus not approved.
Main Article
Discussion
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
 
This editable Main Article is under development and subject to a disclaimer.
The Intel 8088 processor, as a ceramic 40-pin Dual Inline Package (DIP) chip

x86 is the instruction set architecture (ISA) for the Intel 8086 and 8088 chips, 16-bit microprocessors first produced in 1978 and 1979, respectively, and their descendants. [1] The cheaper 8088 chip (which contained an 8-bit multiplexed data bus, as opposed to a full 16-bit bus in the 8086) was used in the very first incarnation of an IBM compatible PC, the IBM PC 5150 in 1981. The term "x86" is also used colloquially to describe the entire line of processors that are based on this chipset, e.g. the 286, 386, 486, etc.

The x86 has 8 16-bit general-purpose registers, one of which is used for the stack. They are AX, BX, CX, DX, SI, DI, SP, and BP. The 386 and higher allow the registers to be extended to a 32-bit width by prepending the register name with the letter E, and to 64 bits under an x86-64 processor by prepending the name with the letter R.

Modes of Operation

The 8086/88 and the 80186/88 operated solely in the 16-bit real mode. Programmers in real mode had control over the entire 1 MB address space using memory segmentation, a technique that included the use of two 16-bit registers, each with a maximum value of 65,536, and simple multiplication to address up to 1 MB. The segment, the first number in the segment:offset pair, was multiplied by 16 and added to the offset, the second number.

With the advent of the 286 came 16-bit protected mode. This protected execution system could prevent users from messing with specific part of memory through the Global Descriptor Table, yet allowing a 24-bit address space to be used, allowing a maximum memory size of 16 MB.

The 386 introduced true 32-bit protected mode operation, along with the TSS, a 32-bit flat 4 GB address space, 32-bit registers to allow complete addressing without need for segmentation, memory paging, and more. User mode, also known as "ring 3", protects the programs in memory and the computer from the programmer and user, and vice-versa. The operating system kernel can initiate by a far call using a GDT selector, can limit memory size, offset, and length, as well as read, write, and execute permissions. The ISA that the 386 introduced with the 32-bit features is commonly known as IA-32.

Success

The x86 instruction set achieved historic status due to a remarkable decision, made jointly by the designers of the original IBM compatible PC. They decided to maintain backward compatibility in both software and hardware, and to maintain it indefinitely, Thus, all subsequent "Intel" processor chips in the x86 family would always execute the original x86 instructions, and all subsequent Microsoft operating systems would execute programs which ran on the original IBM PC. This agreement has stayed in effect from the introduction of the PC to the present time, a remarkable collaboration involving many different companies who came to manufacture hardware associated with IBM compatible PCs, including x86-compatible processors from non-Intel companies such as AMD.

This decision to maintain backward compatibility of hardware and software laid the groundwork for the subsequent success of the x86 family of microprocessors, and the IBM compatible PCs which contain them.

References