X86
# X86

La familia x86 reagrupa los microprocesadores compatibles con el juego de instrucciones Intel 8086. Por tanto, x86 representa a ese conjunto de instrucciones, siendo también una denominación genérica dada a los correspondientes microprocesadores.

## Visión general

La arquitectura es notablemente no limpia, por mantener compatibilidad con la línea de procesadores de 16 bits de Intel, que a su vez también eran compatibles con una familia de procesadores de 8 bits. A pesar de ello, la popularidad comercial de esta arquitectura hizo que muchos fabricantes empezaran a fabricar en masa microprocesadores compatibles. Algunas de estas compañías son AMD, Cyrix, NEC Corporation y Transmeta.

Existen dos sucesores de 64 bits para esta arquitectura:

* IA64, empleada en los procesadores Itanium de Intel y no compatible con X86, excepto bajo emulación.
* AMD64 o x86-64, de AMD, que es básicamente una extensión de 64 bits de la familia x86.

Técnicamente, la arquitectura es denominada IA32 (Intel Architecture 32 bits). Está basada en un modelo de arquitectura CISC (del inglés Complex Instruction Set Computing).

## Historia

### Intel

Intel inició sus operaciones siendo un fabricante de memoria para computadoras. En 1971 fue la primera compañía en lograr la integración de suficientes transistores como para vender un microprocesador programable completo con un conjunto de instrucciones de 4 bits, que se volvería muy común en calculadoras de bolsillo: El Intel 4004.

Al 4004 lo sucedieron el 8008 en 1972 y en 1974 el 8080, cada vez logrando mayor capacidad. En 1978, Intel comenzó a comercializar el procesador 8086, un ambicioso chip de 16 bits potencialmente capaz de ser el corazón de computadoras de propósito múltiple. El 8086 se comercializó en versiones desde 4,77 y hasta 10 MHz.

IBM adoptó al hermano menor del 8086 (el 8088, un procesador con un bus de datos interno de 16 bits, pero con el bus externo de 8 bits, lo que permitía aprovechar diseños y circuitos para sistemas de 8 bits) para basarse en él y lanzar la línea de computadoras más exitosa de la historia: el IBM PC (1981) y el IBM XT (eXtended Technology) (1983) (ver influencia del IBM PC).

El éxito de esta serie fue tal que a partir de ese momento, todos los CPUs de Intel mantuvieron una estricta política de retrocompatibilidad - Todo CPU fabricado por Intel desde ese momento y hasta el 2021 es capaz de ejecutar código compilado para cualquiera de sus predecesores.

Al 8086 lo sucedió el 80286 en 1982 (en el cual se basó la IBM PC/AT, 1985). Este chip, de 24/16 bits, implementó el modo protegido de ejecución, sentando las bases para la aparición de los verdaderos sistemas multitarea de escritorio. El 80286 apareció a 6 MHz, y a lo largo de los años llegó hasta los 12MHz. Hubo varios sistemas operativos que aprovecharon su modo protegido para ofrecer multitarea real, tales como las primeras versiones de OS/2, o Xenix.

Pero el verdadero boom de la multitarea no llegó hasta el nacimiento del 80386 (1985) - Un avance tan fuerte que hoy en día es común referirse como i386 a toda la línea de procesadores que le siguieron (también es común la referencia IA32, Intel Architecture of 32 bits). El 386 fue el primer procesador de Intel de 32 bits, y -magníficas noticias para los desarrolladores- utilizarlo para aplicaciones de multitarea sería ya mucho más fácil de lo que lo fue con el 80286. El 80386 maneja velocidades de 16 a 33 MHz.

El 80486 apareció en 1989. Fue un cambio relativamente menor frente al 80386 - Hasta su aparición, todas las computadoras PC tenían la opción de instalar en un zócalo de la placa base un -bastante caro- coprocesador numérico - para las XT, el 8087. Para las AT, el 80287. Para las 386, el 80387. A partir del 80486, el coprocesador numérico, así como la memoria caché L1 o de nivel 1 fueron integrados dentro del chip de la CPU (el coprocesador solo en los modelos 486DX, los modelos 486SX lo tenían desactivado), trayendo como resultado un gran aumento en la velocidad percibida por los usuarios. Internamente este procesador es el primer x86 segmentado (con una profundidad 5). Este cambio es importante pues permite a la misma frecuencia de reloj ejecutar casi el doble de instrucciones (1,9) e incrementar la frecuencia de reloj. El 486 existe en versiones desde 20 y hasta 100 MHz. Estos últimos denominados 486-DX4 a pesar de multiplicar por tres la frecuencia de funcionamiento interna respecto al bus de datos externo.

En 1993 apareció el Pentium. No se siguió con la nomenclatura 80586 porque muchas empresas competidoras de Intel habían comenzado a producir CPUs con el mismo número que los de Intel. Ante el hecho de que un número no puede ser usado como marca registrada, los procesadores llevan un nombre propio. Este procesador incorporaba bastantes novedades, entre ellas un coprocesador muy mejorado y un doble sistema de "prefetch", lo que le permitía en ciertas situaciones ejecutar dos instrucciones simultáneas, con el consiguiente aumento de rendimiento (esto solo era posible bajo ciertas combinaciones muy estrictas de instrucciones, con lo que el aumento de rendimiento solo era apreciable en aplicaciones compiladas específicamente para él). El Pentium llegó desde los 60 hasta los 233 MHz.

Poco después hizo su aparición el Pentium Pro, una versión orientada a servidores que incluía la caché de segundo nivel en el mismo encapsulado que el procesador. Su elevado precio supuso un freno a su expansión, pero luego su arquitectura P6 fue aprovechada para el Pentium II.

Desde entonces, la tendencia al aparecer el Pentium II (1997), Pentium III (1999) y Pentium 4 (2000) ha sido la integración de más componentes, la adición de instrucciones específicas de multimedia y a elevar la velocidad de reloj tanto como sea posible. El Pentium II llegó desde 233 hasta 450 MHz. El Pentium III desde 450 a 1400 (1,4 GHz). El Pentium 4 debutó a 1,3 GHz y en noviembre del 2005 llegaba ya a los 3,80 GHz. Con todo, la carrera de los MHz se vio frenada debido al creciente consumo de energía y generación de calor producida por los microprocesadores a altas frecuencias de reloj, que en los últimos Pentium 4 superó fácilmente los 100 W.

Paralelamente al Pentium II dos familias de CPUs fueron anunciadas: El Celeron, que es similar a los Pentium pero con menos memoria caché y, por consiguiente, menor precio y prestaciones, y el Xeon, orientado a servidores, con más memoria caché - y claro está, de mucho mayor costo. Con los Celeron se continuó con una tendencia, ya iniciada en los 386 y 486, de tener dos modelos de diferentes prestaciones en la misma familia de procesadores: los modelos DX (386DX y 486DX), de mayores prestaciones, y los modelos SX (386SX y 486SX) de menores prestaciones. En el caso del 386SX por tener un bus externo de 16 bits en lugar de los 32 bits del 386DX, y en los 486SX por tener desactivado el coprocesador matemático interno. Así, en los Pentium II, Pentium III y Pentium 4 aparecieron sus correspondientes versiones de bajo costo y prestaciones (básicamente, como ya se ha dicho, por tener menos memoria caché de nivel 2) con el nombre comercial de Celeron. Parece ser que el motivo principal de dicha diversificación, aparte de aumentar a un costo mínimo el abanico de modelos, prestaciones y precios, es de marketing: debido a las constantes bajadas de precio que experimentan los procesadores y el hardware en general, crear una "barrera de contención" que justifique los diferentes niveles de precios, poniendo un precio más alto a los procesadores más potentes.

### Cronología

**Predecesores (las raíces de la arquitectura x64)**

* 1971 Datapoint 2200. Terminal de computadora programable. Su conjunto de instrucciones es la base de los procesadores Intel desde el 8008 al 8085, los cuales a su vez son los antecesores de la arquitectura x64
* 1972 Intel 8008
* 1974 Intel 8080
* 1977 Intel 8085
* No se incluyen todos los microprocesadores

**Microprocesadores de la arquitectura x86**

* 1978 y 1979 Intel 8086 y 8088. Primeros microprocesadores de la arquitectura x86.
* 1980 Intel 8087. Primer coprocesador numérico de la arquitectura x86, inicio de la serie x87.
* 1980 NEC V20 y V30. Clones de procesadores 8088 y 8086, respectivamente, fabricados por NEC.
* 1982 Intel 80186 y 80188. Mejoras del 8086 y 8088.
* 1982 Intel 80286. Aparece el modo protegido, tiene capacidad para multitarea.
* 1985 Intel 80386. Primer microprocesador x86 de 32 bits.
* 1989 Intel 80486. Incorpora el coprocesador numérico en el propio circuito integrado.
* 1993 Intel Pentium. Mejor desempeño, arquitectura superescalar.
* 1995 Pentium Pro. Ejecución fuera de orden y Ejecución especulativa
* 1996 Amd k5. Rival directo del Intel Pentium.
* 1997 Intel Pentium II. Mejora la velocidad en código de 16 Bits, incorpora MMX
* 1998 AMD K6-2. Competidor directo del Intel Pentium II, introducción de 3DNow!
* 1999 Intel Pentium III. Introducción de las instrucciones SSE
* 2000 Intel Pentium 4. NetBurst. Mejora en las instrucciones SSE
* 2005 Intel Pentium D. EM64T. Bit NX, Intel Viiv
* 2006 Intel Core 2. Introducción de microarquitectura Intel P8. Menor consumo, múltiples núcleos, soporte de virtualización en hardware incluyendo x86-64 y SSSE3.
* No se incluyen todos los microprocesadores.

**Sucesores (microprocesadores x86-64)**

* 2003 AMD Opteron. Primer microprocesador x86 de 64 bits, con el conjunto de instrucciones AMD64)
* No se incluyen todos los microprocesadores

### x86-64

Con la octava generación de procesadores compatibles x86, los x86-64, que utilizan arquitectura y bus de 64 bits, con posibilidad de múltiples núcleos, introducida por AMD y adoptadas por Intel, se introducen por primera vez nuevas variantes y formas, en lo que a la denominación y clasificación del procesador se refiere, tales como el nombre comercial o tecnología del modelo, la compañía fabricante, su número de serie, la cantidad de bits a la que puede trabajar o la cantidad de núcleos por los que está compuesto, por ejemplo: Intel Core 2 Duo E2180, o lo que es lo mismo, i686 o Intel Pentium de doble núcleo E2180, de 64 bits y de 1,6 a 2,0 GHz; o AMD Athlon 64 X2, es decir, un AMD 64 bits, Athlon X de doble núcleo a 2 GHz; todos ellos englobados bajo el denominador común x86-64, y compatibles con subarquitecturas anteriores de 32, 16 y 8 bits, de la familia de procesadores x86 de Intel, y compatibles.

## Datos Adicionales

### Terminación numérica (Intel)

Se utilizaba el número 86 en la terminación numérica de algunos microprocesadores de la familia Intel, por ejemplo D8086, para indicar que utilizaban la arquitectura o conjunto de instrucciones x86. Constituyeron desde su nacimiento un estándar para los ordenadores del tipo Compatible IBM PC.

A partir del microprocesador i486, se utilizaron nombres no numéricos, haciendo referencia a la marca, logotipo o nombre clave con los que fueron lanzados al mercado, y se les comercializó a menudo seguido de su frecuencia, en megahertz.

## Procesadores x86

### Intel

* 486SX
* 486DX
* 486DX2
* 486DX4
* Pentium
* Pentium II
* Pentium 4020
* Pentium III
* Pentium 4
* Pentium D
* Core 2 Quad
* Core 2 Duo
* Core i3
* Core i5
* Core i7
* Core i9
* Celeron

### AMD

* K5
* K6
* K7 (Athlon, Athlon XP)
* Duron
* Sempron
* Ryzen

### Cyrix

6x86

* No se incluyen todos los procesadores x86.
