Conocer la arquitectura x86 es conocer la base de los procesadores de la todavía breve historia de la informática. Se cuentan por millones los procesadores vendidos a lo largo de la historia que la implementan, y además ha sido una arquitectura que dio pié al éxito de compañías como Microsoft e Intel así como al concepto de ordenador personal. x86 es un hito tecnológico que merece la pena ser analizado y estudiado con gran profundidad.
A continuación la conoceremos a fondo, desmigaremos su historia, la situaremos en el mercado y explicaremos las características técnicas de la más notable arquitectura CISC del mercado. x86 es una de las creaciones más importantes en el mundo del hardware, y conocerla es imprescindible para comprender la historia de la informática y su estado actual. Así que pasen y lean, están todos invitados
Un poco de historia
Intel 4004
En 1971 Intel presentó el primer procesador comercial del mercado, el 4004. Se trataba de un modelo con bus de 4 bits y pensado para su uso en calculadoras, muy vetusto pero considerado como la primera piedra de todo lo que se presentaría en esa década. A él lo siguieron los Intel 8008 y 8080 en 1972 y 1974, respectivamente, con set de instrucciones diseñado por Datapoint Corporation y también pensados para ser utilizados en las calculadoras más avanzadas de la época.
Tras estos modelos Intel empezó un enorme proyecto con el que buscaba reinventar el mundo de los procesadores. En 1975 inició los diseños de la arquitectura iAPX 432 (Intel Advanced Processor Architecture) de 32 bits, con mejoras en la multitarea y la administración de memoria respecto de la familia de los 8000, siendo una arquitectura pensada en la programación orientada a objetos y con la capacidad de administrar múltiples procesos simultáneamente. Sin embargo, viendo que la competencia preparaba sus respectivos nuevos productos (Motorola 6800, MOS 6502 o Zilog Z80) y teniendo en cuenta lo ambicioso del proyecto 432 que les obligaría a estar varios años sin presentar un nuevo producto, decidieron iniciar un nuevo trabajo que, si bien en un inicio podía ser considerado temporal, fue lo que le ha mantenido ocupados durante todas estas décadas.
Intel 8086, 1979
En el mes de mayo de 1976 comenzaron a desarrollar un nuevo procesador que empezó a venderse un par de años más tarde, a mediados de 1978. El Intel 8086 incluyó retrocompatibilidad con el software de los anteriores 8008 y 8080, utilizando transistores de 3 micras (unas 135 veces más grandes que los actuales de 22 nanómetros) y una frecuencia de hasta 4.77 MHz. Lo más importante de todo fue la introducción de un nuevo juego de instrucciones diseñado por Intel y denominado x86-16. Fue un pequeño éxito para Intel, y si bien era realmente potente para la época su precio se consideró excesivo. Uno de los puntos más curiosos del 8086 es que si bien fue un invento de Intel, otras compañías como OKI, Siemens, Fujitsu o AMD distribuyeron en el mercado clones de este modelo plenamente compatibles y que incluso en algunos aspectos mejoraban las características del original.
Unos meses más tarde, el 1 de julio de 1979 se presentó el Intel 8088, una versión más barata del 8086 con prácticamente todas sus características, y que tuvo en IBM a su principal aliado. El IBM PC 5150, considerado el primer ordenador personal ('PC') de venta masiva de la historia, utilizó el 8088 en detrimento de otros procesadores de la competencia debido a su alta disponibilidad, facilidad de programación y reducido precio. El IBM PC, que rondaba los 3.000 dólares, fue un éxito de ventas desde su lanzamiento, el 12 de agosto de 1981.
Fue entonces cuando Intel posicionó como su principal producto una nueva familia de chips: los procesadores 'x86', definidos así por usar el mismo juego de instrucciones que, si bien ha ido evolucionando con los años, sigue utilizando muchas de las características originales.
Intel 80286, 1982
El 8086 es considerado el primer x86 de la historia, si bien el modelo que catapultó la fama de Intel fue el 8088. A él le sucedieron los 80186, 80286, 80386 y 80486, más conocidos como 186, 286, 386 y 486 que fueron presentados a lo largo de la década de los 80 y principios de los 90 dentro de equipos englobados bajo el concepto que fué creado en el IBM PC, el cual supuso un completo éxito. Después de los 80X86 Intel se movió a los conocidísimos Pentium, con el primer Pentium en 1993 seguido de Pentium Pro, Pentium II, Pentium III y Pentium 4. Incluso los actuales Ivy Bridge mantienen la marca 'Pentium' en alguno de sus modelos de más baja gama.
Intel Pentium, 1992
Por su parte, aquella arquitectura iAPX 432 que tantas expectativas generó en su gestación fue finalmente presentada en 1981, pero defraudó enormemente a los usuarios quienes consideraron que ofrecía un rendimiento muy por debajo de lo esperado. Intel la abandonó pocos meses después de presentarla al público.
Desde el primer x86 allá por los años setenta, Intel ha sido la encargada de mover la batuta de la que es considerada la principal arquitectura CISC de la historia, si bien no es la única: Motorola, DEC y sobre todo IBM han presentado procesadores CISC a lo largo de la historia. Sus principales características las describiremos más adelante, pero antes nos pararemos a hablar sobre un tema importante: las licencias x86.
x86 y las licencias
Comentábamos en el anterior artículo de esta serie que ARM diseña sus arquitecturas y vende esta propiedad intelectual a otras compañías, encargadas de tomar esos diseños, modificarlos si fuese necesario y luego ordenar la fabricación del procesador final. Intel toma un doble papel de diseñador y fabricante de sus procesadores, ya que también vende las licencias a otros fabricantes.
El ejemplo más claro de compañía a la que Intel le licencia a arquitectura x86 lo encontramos en AMD, quien desde hace varias décadas acuerda con Intel un contrato tal que le permite fabricar chips con el mismo juego de instrucciones, de forma que son plenamente compatibles en software aunque utilizan hardware diferente. En la actualidad sólo AMD y VIA tienen licencias x86 proporcionadas por Intel, además de lógicamente ella misma. Las cuotas de mercado hablan por si mismas:
Diagrama de porcentajes de licencias x86 (vía Hardware.info)
Intel X86 y sus principales características
La larga experiencia de la compañía ha repercutido en múltiples y notables cambios en muchos aspectos, que van desde la mejora en el tamaño de los buses de datos (16, 32 y ahora 64 bits) a múltiples nuevas instrucciones añadidas que han ido adaptándose a los nuevos usos de la tecnología
Por ejemplo el 8086 no disponía de operaciones en coma flotante, pera lo cual Intel creó un coprocesador matemático que realizase estas operaciones: fue una pequeña extensión sobre x86 denominada x87 y lanzada al mercado bajo los nombres 8087, 80187, 80287, 80387, 80487 y la última 80587, ya a mediados de los 90. Se trataba de procesadores independientes que proporcionaban un extra de rendimiento en cierto software, pero que a la vez suponían un coste adicional respecto del equipo original que tampoco era considerado muy barato. Desde hace un par de décadas todos los procesadores x86 comerciales incluyen instrucciones para operar en coma flotante, con lo que no es necesario un coprocesador adicional salvo en ciertos usos muy concretos en los que se requiere de una gran potencia de cálculo, por ejemplo con sistemas como NVidia Tesla.
Diagrama esquemático del Intel 8086 (vía Wikipedia)
x86 también ha ido incluyendo nuevos sets de instrucciones y mayores registros para afrontar todo tipo de tareas. MMX, que añadió los registros utilizados en la arquitectura x87, ha sido uno de los más conocidos y fue incluido en un conjunto de modelos basados en los Pentium y lanzados en 1996, si bien hay muchos más: SSE (Streaming SIMD Extensions en sus versiones SSE, SSE2, SSE3, SSSE3 y SSE4; introdujo múltiples instrucciones para operar con datos en coma flotante, enteros o posiciones de memoria), 3DNow! (una evolución sobre MMX, también para aplicación gráfica) o AES (más reciente, para cifrado de la información). En Wikipedia puede consultarse un breve resúmen de las instrucciones disponibles, si bien la documentación más completa la proporciona la propia Intel y se compone de unos cuantos miles de páginas.
Si echáis un vistazo a ese par de enlaces veréis que en x86 dispondremos de cientos de instrucciones, muchas de ellas complejas que podrían subdividirse en varias instrucciones más pequeñas. Sin embargo la filosofía de CISC es precisamente esa: proporcionar un amplio conjunto de instrucciones que pueden abarcar múltiples tareas más simples. El algoritmo del huevo frito de nuestra primera entrada introductoria era el siguiente:
Paso 1: Poner la sartén en la vitrocerámica
Paso 2: Echar aceite
Paso 3: Calentar el aceite
Paso 4: Esperar a que esté caliente
Paso 5: Cascar el huevo
Paso 6: Verterlo con cuidado sobre el aceite caliente
Paso 7: Con la ayuda de una paleta, echar el aceite por encima del huevo
Paso 8: Comprobar que el huevo ya está cocinado y, en ese caso, sacarlo a un plato
Supongamos que cada uno de esos 'pasos' puede ejecutarse en un procesador Intel 8088. Sin embargo, jugando a ser Intel procedemos a lanzar el Pentium MMX con nuevas instrucciones entre las que se encuentran dos nuevas: [Echar y calentar el aceite]
y [Cascar el huevo y verterlo con cuidado sobre el aceite caliente]
, ambas más complejas que las anteriores. Si las utilizásemos en nuestro algoritmo el resultado sería el siguiente:
Paso 1: Poner la sartén en la vitrocerámica
Paso 2: Echar y calentar el aceite
Paso 4: Esperar a que esté caliente
Paso 5: Cascar el huevo y verterlo con cuidado sobre el aceite caliente
Paso 7: Con la ayuda de una paleta, echar el aceite por encima del huevo
Paso 8: Comprobar que el huevo ya está cocinado y, en ese caso, sacarlo a un plato
Unos años más tarde estamos diseñando Pentium 4 y decidimos probar con una nueva instruccion, [Echar y calentar el aceite hasta que alcance su temperatura óptima]
, con lo que podríamos volver a modificar el algoritmo:
Paso 1: Poner la sartén en la vitrocerámica
Paso 2: Echar y calentar el aceite hasta que alcance su temperatura óptima
Paso 5: Cascar el huevo y verterlo con cuidado sobre el aceite caliente
Paso 7: Con la ayuda de una paleta, echar el aceite por encima del huevo
Paso 8: Comprobar que el huevo ya está cocinado y, en ese caso, sacarlo a un plato
Podríamos continuar añadiendo nuevas instrucciones cada vez más complejas para completar nuestra tarea, minimizando el número de pasos
pero siendo estos cada vez más complejos. Incluso llevando la filosofía al extremo, si vemos que nuestros usuarios/clientes hacen muchos huevos fritos en sus desarrollos podríamos implementar una única instrucción:
Paso 0: Hacer un huevo frito
Que sería la más compleja de todas.
Otro aspecto fundamental de los procesadores x86 es su rendimiento. A lo largo de la historia ha demostrado ser una arquitectura muy potente, pero esto tiene su contrapartida: son un conjunto de procesadores que consumen más energía que los modelos ARM.
Arquitectura x86, conclusiones
Terminamos este capítulo de nuestro especial de arquitecturas con algunas conclusiones finales sobre x86, una de las más importantes de la historia.
El rendimiento de x86 ha crecido sustancialmente con cada nueva generación de procesadores. Intel, como gran creadora de la arquitectura ha ido adaptándola a los nuevos usos por parte de los usuarios, añadiendo no sólo nuevas instrucciones sino también nuevos chips. Lo último ha sido introducir una unidad de procesamiento gráfico junto a la CPU, lo cual permite abaratar costes y ofrecer un conjunto que si bien no es excesivamente potente en el procesamiento de imágenes, sí es suficiente para muchos usuarios.
El futuro de la arquitectura x86 mezclará su negocio tradicional en equipos de sobremesa y portátiles junto a esa nueva categoría de dispositivos 'portátiles', móviles y tabletas principalmente. Intel ya ha introducido su tecnología en algunos dispositivos con unos remodelados Intel Atom de bajo consumo, y a lo largo de este año está confirmado su uso en muchos otros gadgets de diversas marcas.
Por otro lado, el gran rival de x86 es ARM, una arquitectura cuyo crecimiento en los últimos años está siendo importantísimo al conseguir introducirse en dispositivos pequeños, eficientes y con un precio generalmente más atractivo, que seducen a muchos usuarios. No cabe duda de que Intel continuará evolucionando su principal arquitectura hacia los nuevos usos de la tecnología y que seguiremos hablando de ella durante muchos años más.
Especial Arquitecturas Hardware: índice
IV.- Arquitectura x86, una historia imprescindible de la informática
En Xataka | Todo sobre las arquitecturas de PC
Ver todos los comentarios en https://www.xataka.com
VER 56 Comentarios