Este post lo vamos a dedicar a saber y entender las principales diferencias que existen entre las arquitecturas ARM y x86.
Antes de hablar de las diferencias, vamos a hacer una pequeña introducción de lo que es "ARM" y "x86", para tener una pequeña base sobre ambas arquitecturas y ser capaces de asimilar y entender mejor las diferencias, de las que hablaremos al final de este post.
¿QUÉ ES ARM?
ARM es una arquitectura RISC (Reduced Instruction Set Computer) de 32 bits, desarrollada por ARM Holdings. En sus albores, fue concebida por Acorn Computers para uso en ordenadores personales, de hecho, los primeros productos basados en ARM fueron los Acorn Archimedes (primer ordenador personal de propósito general, basado en su propia CPU RISC ARM de 32 bits) en 1987.
Acorn Archimedes, 1987
En la recta final de los 80, Acorn se encontraba evolucionando su tecnología, presentado las arquitecturas ARMv2 y preparando la ARMv3. Fue en ese momento cuando Apple, se interesó en colaborar con Acorn para diseñar un nuevo procesador para un dispositivo que presentarían años después, en 1993: Apple Newton (La primera PDA de la historia). En esos años se acabó el diseño de la arquitectura ARMv3 y se presentó la familia de procesadores ARM6.
Características
ARM nació como una arquitectura para uso en ordenadores y dispositivos de bolsillo con aquella primera Newton de Apple que ya hemos mencionado, y siendo este uno de los primeros grandes dispositivos en movilidad.
Los procesadores ARM poseen una arquitectura de muy bajo consumo energético, al menos en comparación con las alternativas existentes en el mercado. Muchas veces incluso podría pasar desapercibido respecto del consumo de otros componentes del mismo dispositivo, por ejemplo en un coche eléctrico. Además, la fabricación de estos chips es bastante barata.
Características
ARM nació como una arquitectura para uso en ordenadores y dispositivos de bolsillo con aquella primera Newton de Apple que ya hemos mencionado, y siendo este uno de los primeros grandes dispositivos en movilidad.
Los procesadores ARM poseen una arquitectura de muy bajo consumo energético, al menos en comparación con las alternativas existentes en el mercado. Muchas veces incluso podría pasar desapercibido respecto del consumo de otros componentes del mismo dispositivo, por ejemplo en un coche eléctrico. Además, la fabricación de estos chips es bastante barata.
ARM, a partir de su primera versión comercial en los años 80, ha ido evolucionando notablemente a lo largo del tiempo, y se han ido introduciendo instrucciones con cada nueva versión de la arquitectura, no solo para mejorar el rendimiento, sino para mejorar la seguridad.
Hay otros fabricantes que han creado sus arquitecturas basándose en las de ARM, como pro ejemplo Qualcomm, nVidia, Apple o Samsung.
Una de las principales características de ARM es que utiliza relativamente pocos transistores, o al menos, muchos menos que los procesadores de otras arquitecturas. Esta es una de las razones por la que ofrece un rendimiento aceptable con un consumo energético muy bajo, y no solo eso: fabricar un procesador ARM también es notablemente más barato, lo cual los hace ideales en muchos casos.
Diseño
Para mantener el concepto tradicional de RISC, se estableció la ejecución de una orden en un tiempo, por lo general, de un ciclo. La característica más interesante es el uso de los cuatro bits superiores como código de condición, haciendo que cualquier instrucción pueda ser condicional. Este corte reduce el espacio para algunos desplazamientos en el acceso a memoria, pero permite evitar perder ciclos de reloj en el pipeline al ejecutar pequeños trozos de código con ejecución condicional.
Otra característica única del juego de instrucciones es la posibilidad de añadir "shifts" y rotar en el procesamiento de datos. Por ejemplo, la instrucción en C:
a += (j << 2)
Puede ser mejorada como una única instrucción en ARM, permitiendo la reubicación del registro. Eso hace que necesitemos menos operaciones de carga y almacenamiento, mejorando, por ende, el rendimiento.
El procesador ARM, también posee otras características "raras" en otras arquitecturas consideradas también RISC, como el direccionamiento relativo, y el pre y post incremento en el modo de direccionamiento.
Futuro de ARM
En el actual panorama de crisis económica en el que vivimos y de interés por el cuidado de la naturaleza, ARM es una opción que se está estudiando para su uso en grandes centros de datos como sustituto de las actuales tecnologías. Su principal finalidad es la de abaratar los costes relacionados con el enorme consumo energético, no solo por los propios computadores sino también por los ingentes sistemas de ventilación y seguridad asociados.
ARM no solo consume menos energía, sino que también genera menos calor, otra característica muy importante en los datacenters. Ya existen varios ejemplos que han creado sistemas de unos cuantos cientos de procesadores, y si bien, no son los más potentes (no tenemos ningún ARM en el top500 de supercomputadores) si ofrecen un rendimiento más que digno para muchísimas de las tareas más profesionales de la actualidad. Puede ser cuestión de tiempo que ARM entre a formar parte de esta prestigiosa lista.
Futuro de ARM
En el actual panorama de crisis económica en el que vivimos y de interés por el cuidado de la naturaleza, ARM es una opción que se está estudiando para su uso en grandes centros de datos como sustituto de las actuales tecnologías. Su principal finalidad es la de abaratar los costes relacionados con el enorme consumo energético, no solo por los propios computadores sino también por los ingentes sistemas de ventilación y seguridad asociados.
ARM no solo consume menos energía, sino que también genera menos calor, otra característica muy importante en los datacenters. Ya existen varios ejemplos que han creado sistemas de unos cuantos cientos de procesadores, y si bien, no son los más potentes (no tenemos ningún ARM en el top500 de supercomputadores) si ofrecen un rendimiento más que digno para muchísimas de las tareas más profesionales de la actualidad. Puede ser cuestión de tiempo que ARM entre a formar parte de esta prestigiosa lista.
¿QUÉ ES x86?
Al igual que ARM, x86 es una arquitectura, pero en este caso de tipo CISC. Es una arquitectura poco limpia, el conjunto de instrucciones es titánico, pero a pesar de ello, la popularidad comercial de esta arquitectura (propia de Intel) hizo que muchos fabricantes comenzaran a fabricar en masa microprocesadores compatibles, compañías como AMD, Cyrix o NEC Corporation.
Procesador comercial Intel 4004
En 1971 Intel presenta su primer procesador comercial, el 4004. Es considerado como la primera piedra de todo lo que vino después. A él lo siguieron los Intel 8008 y 8080 en 1972 y 1974 respectivamente. Todos ellos diseñados para utilizarse en las calculadoras de la época. No fue hasta 1981 que Intel posicionó como su principal producto, tras una larga historia de éxitos, a la 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. El 8086 es considerado el primer x86 de la historia, aunque el que catapultó la fama de Intel fue su sucesor, el 8088. A él le siguieron los 80186, 80286, 80386 y 80486, presentados a lo largo de la década de los 80 y principios de los 90.
Características
La larga experiencia de Intel ha repercutido en la evolución y cambios de la arquitectura en muchos aspectos, que van desde la mejora en el tamaño de los buses de datos (16, 32 y ahora 64 bits) a muchísimas instrucciones nuevas que se han ido añadiendo a lo largo del tiempo.
Por ejemplo, el 8086 no disponía de operaciones en coma flotante. Y 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 (como lo era en tiempos del 8086) salvo en ciertos usos muy concretos en los que se necesite de una gran potencia de cálculo, como por ejemplo con sistemas NVidia Tesla.
Diagrama esquemático del Intel 8086
x86 también ha ido incluyendo nuevos sets de instrucciones y mayores registros para afrontar todo tipo de tareas. x86 dispone 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 esta: proporcionar un amplio conjunto de instrucciones que pueden abarcar múltiples tareas más simples.
Futuro de x86
El rendimiento ha ido creciendo en gran manera con cada nueva generación de procesadores. El futuro de esta arquitectura, mezclará su negocio tradicional de equipos de sobremesa portátiles junto a esa nueva categoría de dispositivos "portátiles", móviles y tabletas principalmente.
Es aquí donde aparece su gran rival, ARM. Una arquitectura que en los últimos años creció de una manera sorprendente consiguiendo abrir mercado en los dispositivos pequeños. Son tremendamente eficientes y tienen un precio muy atractivo. Momento es ya de ver las diferencias entre ambas arquitecturas.
x86 vs ARM
Después de haber tomado cierto contacto con ambas arquitecturas, vamos a ver las diferencias entre ambas, lo mejor y lo peor de cada una de ellas cara a cara.
El procesador más utilizado en equipos de escritorio es el x86, basado en arquitectura CISC, con soporte para operaciones complejas, simultáneas y de ejecución más lenta, que a pesar de simplificar la estructura de la programación, desemboca en un mayor consumo de energía (dada la complejidad de las instrucciones) y también de la necesidad de más espacio físico.
Por otro lado, los procesadores ARM están basados en arquitectura RISC (Reduced Instruction Set Computer); cuya propiedad más destacada e importante es que posee instrucciones de tamaño fijo y con pocos formatos, y que sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos. El objetivo de diseñar máquinas con esta arquitectura es facilitar el paralelismo en la ejecución de instrucciones y permitir realizar tareas menores con procesos más cortos, lo que al final desemboca en una disminución de la energía empleada.
Intel y AMD son los dos grandes fabricantes que han hecho evolucionar los procesadores x86 en entornos de escritorio en su mayoría. Mientras que el desarrollo de los chips ARM ha sido gracias a distintos fabricantes, como Qualcomm, Texas Instruments, Apple o Samsung entre otros muchos. Esto es así porque ARM Holdings, la empresa que desarrolló ARM, decidió licenciarla haciéndola accesible a los diferentes fabricantes por unas pequeñas tasas.
Esto ha permitido que los procesadores ARM se encuentren en multitud de dispositivos de marcas diversas, mientras que la arquitectura x86 originaria de Intel, solo se encuentra en sus procesadores y en los de AMD.
Si hablamos de sistemas operativos, podemos clasificarlos en los que están orientados a x86 y los que lo están en ARM. La arquitectura ARM, al tener una eficiencia energética superior, está presente en sistemas como Android o iOS, pero recientemente, empresas como Microsoft se han dado cuenta de las restricciones que esto conlleva y están luchando contra esto con sistemas como Windows8 y sus aplicaciones Metro, diseñadas para ser ejecutadas por ambas arquitecturas.
Diferencias a nivel de hardware
A nivel de hardware, la diferencia principal entre ARM y x86 es que tienen distintos conjuntos de instrucciones. Por así decirlo, hablan un lenguaje distinto, lo que hace totalmente incompatible un sistema con el otro. Es decir, que no se pueden compartir binarios entre ambos sistemas.
Si pasamos a explorar cómo se comportan los procesadores, veremos que ARM tiene una gran ventaja sobre x86 en el consumo de energía. Al tener una estructura e instrucciones más sencillas, el ARM consume muchísima menos energía que los procesadores Intel normales. Como podréis imaginar, esto le hace el candidato perfecto para dispositivos móviles como teléfonos o tablets.
Sin embargo,los procesadores x86 son los que destacan en rendimiento. Esa arquitectura más compleja permite más optimizaciones que se hacen mientras se ejecuta la aplicación, como por ejemplo el intercambio de orden de instrucciones para mejorar el tiempo de ejecución.
A pesar de que tanto ARM como Intel trabajan para reducir esas ventajas de uno sobre el otro, las diferencias siguen siendo suficientemente notables para que cada procesador se use en un tipo distinto de computadoras: los Intel a los ordenadores, y los ARM a los móviles y tablets.
Diferencias trasladadas al software
En el punto anterior, decíamos que, debido a los diferentes conjuntos de instrucciones, los binarios no son compatibles entre ambas arquitecturas. Entonces, ¿por qué sí que se pueden ejecutar las mismas aplicaciones Metro en Windows8 y Windows RT?
La respuesta es que las aplicaciones Metro no son exactamente código binario. Normalmente, cuando estáis en un ordenador (Sea Windows, Max o Linux) y compilas un programa, se crea un archivo que contiene las instrucciones que se ejecutarán directamente en el procesador.
Sin embargo, las aplicaciones Metro se compilan en un lenguaje intermedio, MSIL, que es luego interpretado por el sistema. ¿Qué ventaja tiene? Que un mismo ejecutable funciona en cualquier arquitectura.
En cuanto al rendimiento, no podremos instalar un software potente como Mathematica o Visual Studio en un sistema con procesador ARM y pretender que funcione igual que en un procesador Intel.
También ARM restringe lo que podemos hacer en el ordenador. Por ejemplo, instalar Linux en un tablet ARM no será tan fácil como hacerlo con un ordenador Intel. No sólo por temas de drivers, sino porque necesitaríamos versiones específicas del sistema hechas para procesadores ARM. Tampoco podremos controlar el arranque del sistema y nos tendremos que olvidar de quitar el "Secure Boot" o de modificar los ajustes de la BIOS.
La conclusión en este punto es que ARM es un tipo de procesador dirigido especialmente a móviles y tablets y windows RT aprovecha las posibilidades que da. Más autonomía y un rendimiento más que suficiente para un sistema en el que la actividad que vayamos a desarrollar no sea demasiado grande.
Bibliografía.
Bibliografía.