IA-32 ("Intel Architecture, 32-bit"), often generically called "
x86" or "x86-32", is the instruction set architectureof Intel's most commercially successful microprocessors. It is a 32-bitextension, first implemented in the Intel 80386, of the earlier 16-bitIntel 8086, 80186 and 80286 processors and the common denominator for all subsequent "x86" designs. This architecture defines the instruction setfor the family of microprocessors installed in the vast majority of personal computers in the world.
The longevity is partially due to full backward compatibility and the architecture has also recently been extended to
64-bits, without breaking compatibility. This is now called Intel 64by Intel (generically called "x86-64") and is basically unrelated to the 64-bit IA-64architecture implemented in Intel's Itaniumseries.
The IA-32 instruction set is usually described as a CISC (
Complex Instruction Set Computer) architecture, though such classifications have become less meaningful with advances in microprocessor design. Modern x86 microarchitectures such as K7, NetBurst, and newer, are often referred to as post-RISC processors.
The IA-32 instruction set was introduced in the
Intel 80386microprocessor in 1985and remains the basis of most PC microprocessors over twenty years later. Even though the instruction set has remained intact, the successive generations of microprocessors that run it have become much faster. Within various programming languagedirectives, IA-32 is still sometimes referred to as the "i386" architecture.
Intel was the inventor and is the biggest supplier of IA-32 processors, but it is not the only supplier. The second biggest supplier is AMD. There are other suppliers, but their volumes are small. As of 2007, Intel is moving to x86-64, but still produces IA-32 processors such as
Celeron Mfor laptops. VIA Technologiescontinues to produce the VIA C3/C7 family of "pure" IA-32 devices, and AMD still produces the Geode line and mobile IA-32 processors. For a time Transmetaproduced IA-32 processors.
The IA-32 architecture was expanded by AMD in 2003 to natively support 64 bits, creating a new derivative
x86-64architecture. The first family of processors to support this architecture, which AMD calls AMD64, was the AMD K8family of processors. This was the first time any company other than Intel made significant additions to the IA-32 architecture. Intel was forced to follow suit, introducing modified NetBurstfamily processors, initially referred to as "IA-32e" or "EM64T" and now called Intel 64 and almost identical to AMD64. x86-64 is backwards compatible with 32-bit code without any performance loss. For example, The Developers Manuals available from Intel on the IA-32 architecture refer to IA-32 and IA-32e in tandem.
The original IA-32 instruction set has been evolved over time with the addition of the matrix maths instruction updates. Many new architectures, including 64-bit ones, have since succeeded IA-32. However, the ultimate evolution of IA-32 was when it was extended again to 64-bits, but of course at that point it cannot be called IA-32 anymore; the 64-bit extension is called
x86-64. It could not be called IA-64as Intel had already used this label for the Itaniumdesign (a design which is not really an evolution of the IA-32 architecture). AMD's AMD64 was the first x86-64 instruction set designed. Later, Intel followed by imitating AMD's design with what they call Intel 64 (formerly IA-32e and EM64T).
Intel's IA-64 architecture is not directly compatible with the IA-32 instruction set, despite having a similar name. It completely discards all IA-32 instructions, and starts from scratch with a completely different instruction set as well as using a VLIW design instead of
out-of-order execution. IA-64 is the architecture used by the Itaniumline of processors. Itanium initially had hardware-support for IA-32, but it was very slow. Intel shifted to the use of a software emulatorinstead. The nomenclature "IA-64" means "Intel Architecture, 64-bit", but the connection with IA-32 is only in the name.
Further improvements are:
* Sixteen times the number of general purpose registers (now 128)
* Sixteen times the number of floating point registers (now 128)
* Register rotation mechanism to keep values in registers over function calls
AMD's AMD64 instruction set, initially called x86-64, is largely built on top of IA-32, and thus maintains the x86family heritage, despite having a different name. While extending the instruction set, AMD took the opportunity to clean up some of the odd behavior of this instruction set that has existed since its earliest 16-bit days, while the processor is operating in 64-bit mode.
Further improvements are:
* Two times the number of general purpose registers (now 16)
* Two times the number of SSE registers (now 16)
* The general purpose registers are now truly general-purpose registers and are no longer restricted.
* Most of the functionality of the segment registers has been deprecated, since their usage has steadily declined even during the IA-32 days.
By February 2004, Intel announced the Intel 64 instruction set, formerly known as
Yamhill. It was derived from AMD's AMD64. Intel 64 is generally compatible with code written for the AMD64, though it lacks some AMD64 features. Intel started using the set starting with the XeonNocona core in late 2004, introducing it to the desktop market with the Pentium 4E0 revision in early 2005.
x86-64(AMD's "AMD64" and Intel's "Intel64")
List of AMD microprocessors
List of Intel microprocessors
Intel Core microarchitecture
* [http://developer.intel.com/products/processor/manuals/index.htm Free IA-32 documentation] , provided by Intel
* [http://siyobik.info/index.php?module=x86 IA-32 Instruction Set Reference] , HTML/non-PDF version
Wikimedia Foundation. 2010.