Arm vs x86: juegos de instrucciones, arquitectura y todas las diferencias clave explicadas

Android es capaz de funcionar en tres tipos diferentes de arquitectura de procesador: Arm, Intel y MIPS. La primera es la arquitectura omnipresente hoy en día después de que Intel abandonara sus CPUs para teléfonos, mientras que los procesadores MIPS para teléfonos no se ven desde hace años. Arm es la arquitectura de CPU que utilizan todos los smartphones modernos, tanto en el ecosistema Android como en el de Apple. Los procesadores Arm también se están abriendo paso en el mercado de los PC a través de Windows on Arm y la CPU M1 personalizada de Apple para los Mac. Con la guerra de las CPUs Arm vs Intel a punto de calentarse a lo grande, aquí tienes todo lo que necesitas saber sobre Arm vs x86.

Explicación de la arquitectura de la CPU

La Unidad Central de Procesamiento (CPU) es el «cerebro» de tu dispositivo, pero no es precisamente inteligente. Una CPU sólo funciona cuando se le dan instrucciones muy específicas -llamadas convenientemente conjunto de instrucciones- que le indican al procesador que mueva datos entre los registros y la memoria o que realice un cálculo utilizando una unidad de ejecución específica (como la multiplicación o la sustracción). Los bloques de hardware de la CPU requieren instrucciones diferentes. Éstas tienden a aumentar con las CPUs más complejas y potentes. Las instrucciones deseadas también pueden informar el diseño del hardware, como veremos en un momento.

¿Qué es un SoC? Todo lo que necesitas saber sobre los conjuntos de chips de los smartphones

Las aplicaciones que se ejecutan en tu teléfono no están escritas en instrucciones de CPU; eso sería una locura con las grandes aplicaciones multiplataforma actuales que se ejecutan en una variedad de chips. En su lugar, las aplicaciones escritas en diversos lenguajes de programación de alto nivel (como Java o C++) se compilan para conjuntos de instrucciones específicos, de modo que se ejecuten correctamente en CPUs Arm o x86. Estas instrucciones se descodifican a su vez en operaciones de microcódigo dentro de la CPU, lo que requiere espacio en el silicio y energía. Si se quiere una CPU de bajo consumo, es primordial mantener la sencillez del conjunto de instrucciones. Sin embargo, se puede obtener un mayor rendimiento con un hardware y unas instrucciones más complejas a costa de la potencia. Esta es una diferencia fundamental entre los enfoques de Arm e Intel en el diseño de las CPU.

El x86 tradicionalmente tiene como objetivo el máximo rendimiento, Arm eficiencia energética

Arm se basa en RISC (Reduced Instruction Set Computing) mientras que Intel (x86) es CISC (Complex Instruction Set Computing). Las instrucciones de la CPU de Arm son razonablemente atómicas, con una correlación muy estrecha entre el número de instrucciones y los microoperadores. CISC, en comparación, ofrece muchas más instrucciones, muchas de las cuales ejecutan múltiples operaciones (como el movimiento optimizado de datos y matemáticas). Esto conduce a un mejor rendimiento, pero a un mayor consumo de energía al decodificar estas complejas instrucciones.

Este vínculo entre las instrucciones y el diseño del hardware del procesador es lo que hace que una arquitectura de CPU. De este modo, las arquitecturas de CPU pueden diseñarse para diferentes propósitos, como el cálculo de números extremos, el bajo consumo de energía o el área mínima de silicio. Esta es una diferencia clave cuando se mira a Arm vs x86 en términos de CPUs, ya que el primero se basa en una menor potencia, conjunto de instrucciones y hardware.

Arquitecturas modernas de CPU de 64 bits

Hoy en día, las arquitecturas de 64 bits son la corriente principal a través de los teléfonos inteligentes y PCs, pero esto no fue siempre el caso. Los teléfonos no hicieron el cambio hasta 2012, aproximadamente una década después que los PC. En pocas palabras, la informática de 64 bits aprovecha los registros y las direcciones de memoria lo suficientemente grandes como para utilizar tipos de datos largos de 64 bits (1s y 0s). Además de hardware e instrucciones compatibles, también se necesita un sistema operativo de 64 bits, como Android.

Los veteranos del sector quizá recuerden el revuelo que se armó cuando Apple presentó su primer procesador de 64 bits antes que sus rivales de Android. El paso a los 64 bits no transformó la informática del día a día. Sin embargo, es importante para ejecutar las matemáticas de forma eficiente cuando se utilizan números de punto flotante de alta precisión. Los registros de 64 bits también mejoran la precisión del renderizado 3D, la velocidad de encriptación y simplifican el direccionamiento de más de 4GB de RAM.

Hoy en día, ambas arquitecturas admiten 64 bits, pero es más reciente en los móviles

Los ordenadores personales pasaron a los 64 bits mucho antes que los smartphones, pero no fue Intel quien acuñó la moderna arquitectura x86-64 (también conocida como x64). Ese galardón pertenece al anuncio de AMD de 1999, que adaptó la arquitectura x86 existente de Intel. La arquitectura alternativa IA64 Itanium de Intel se quedó en el camino.

Arm presentó su arquitectura de 64 bits ARMv8 en 2011. En lugar de ampliar su conjunto de instrucciones de 32 bits, Arm ofrece una implementación limpia de 64 bits. Para lograrlo, la arquitectura ARMv8 utiliza dos estados de ejecución, AArch32 y AArch64. Como sus nombres indican, uno es para ejecutar código de 32 bits y el otro para 64 bits. La belleza del diseño de ARM es que el procesador puede cambiar sin problemas de un modo a otro durante su ejecución normal. Esto significa que el decodificador para las instrucciones de 64 bits es un nuevo diseño que no necesita mantener la compatibilidad con la era de 32 bits, pero el procesador en su conjunto sigue siendo compatible con el pasado.

Lee más: Arm Cortex-X1 lleva la lucha a las potentes CPUs de Apple

El Heterogeneous Compute de Arm se impuso en los móviles

Las diferencias arquitectónicas comentadas anteriormente explican en parte los éxitos y problemas actuales a los que se enfrentan los dos gigantes de los chips. El enfoque de bajo consumo de Arm está perfectamente adaptado a los requisitos de potencia de diseño térmico (TDP) de 3,5 W de los móviles, pero el rendimiento también se adapta a los chips para portátiles de Intel. Por su parte, el típico Core i7 de 100W de TDP de Intel triunfa en los servidores y los ordenadores de sobremesa de alto rendimiento, pero históricamente tiene dificultades para bajar a menos de 5W. Véase la dudosa línea Atom.

Por supuesto, tampoco debemos olvidar el papel que los procesos de fabricación de silicio han desempeñado en la mejora de la eficiencia energética en la última década. En términos generales, los transistores de CPU más pequeños consumen menos energía. Intel se ha atascado tratando de superar su proceso interno de 14nm de 2014. En ese tiempo, los conjuntos de chips para teléfonos inteligentes han pasado de los 20nm a los diseños de 14, 10 y ahora 7nm, y se espera que los 5nm lleguen en 2021. Esto se ha logrado simplemente aprovechando la competencia entre las fundiciones de Samsung y TSMC.

Sin embargo, una característica única de la arquitectura de Arm ha sido especialmente decisiva para mantener el TDP bajo para las aplicaciones móviles: la computación heterogénea. La idea es bastante sencilla, construir una arquitectura que permita que diferentes partes de la CPU (en términos de rendimiento y potencia) trabajen juntas para mejorar la eficiencia.

La capacidad de Arm para compartir cargas de trabajo entre núcleos de CPU de alto y bajorendimiento de la CPU es una ventaja para la eficiencia energética

La primera apuesta de Arm por esta idea fue big.LITTLE allá por 2011 con el núcleo grande Cortex-A15 y el pequeño Cortex-A7. La idea de utilizar núcleos de CPU más grandes fuera del orden para aplicaciones exigentes y diseños de CPU de bajo consumo dentro del orden para tareas de fondo es algo que los usuarios de smartphones dan por sentado hoy en día, pero se necesitaron unos cuantos intentos para limar la fórmula. Arm se basó en esta idea con DynamIQ y la arquitectura ARMAv8.2 en 2017, permitiendo que diferentes CPUs se asienten en el mismo clúster, compartiendo recursos de memoria para un procesamiento mucho más eficiente. DynamIQ también permite el diseño de 2+6 CPU que es cada vez más común en los chips de gama media.

Relación: Procesadores mononúcleo vs multinúcleo: ¿Qué es mejor para los smartphones?

Los chips Atom rivales de Intel, sin computación heterogénea, no pudieron igualar el equilibrio de rendimiento y eficiencia de Arm. Los proyectos Foveros, Embedded Multi-die Interconnect Bridge (EMIB) y Hybrid Technolgy de Intel han tardado hasta 2020 en producir un diseño de chip competitivo: el Lakefield de 10 nm. Lakefield combina un único núcleo Sunny Cove de alto rendimiento con cuatro núcleos Tremont de bajo consumo, junto con funciones gráficas y de conectividad. Sin embargo, incluso este paquete está dirigido a portátiles conectados con un TDP de 7W, que sigue siendo demasiado alto para los smartphones.

Intel Lakefield con tecnología híbrida utiliza principios de diseño similares a los de Arm big.LITTLE

Hoy en día, Arm vs x86 está cada vez más peleado en el segmento de mercado de los portátiles de menos de 10W TDP, donde Intel escala hacia abajo y Arm hacia arriba cada vez con más éxito. La noticia de Apple de que cambiará a sus propios chips Arm personalizados para Mac es un ejemplo del creciente alcance del rendimiento de la arquitectura Arm, gracias en parte a la computación heterogénea junto con las optimizaciones personalizadas realizadas por Apple.

Núcleos y conjuntos de instrucciones Arm personalizados

Otra distinción importante entre Arm e Intel es que esta última controla todo su proceso de principio a fin y vende sus chips directamente. Arm simplemente vende licencias. Intel mantiene su arquitectura, el diseño de la CPU e incluso la fabricación totalmente interna. Arm, en comparación, ofrece una variedad de productos a socios como Apple, Samsung y Qualcomm. Estos van desde diseños de núcleos de CPU listos para usar, como el Cortex-A78, diseños construidos en asociación a través de su programa Arm CXC, y licencias de arquitectura personalizada que permiten a empresas como Apple y Samsung construir núcleos de CPU personalizados e incluso realizar ajustes en el conjunto de instrucciones.

Lee más: Los primeros ordenadores de Apple basados en Arm incluyen los nuevos MacBooks y el Mac Mini

Construir CPUs personalizadas es un proceso costoso e implicado, pero hecho correctamente puede conducir claramente a resultados potentes. Las CPUs de Apple muestran cómo el hardware y las instrucciones a medida acercan el rendimiento de Arm mucho más al de los x86 convencionales e incluso más allá. Aunque los núcleos Mongoose de Samsung han sido más polémicos.

Apple tiene la intención de reemplazar gradualmente las CPUs de Intel dentro de sus productos Mac con su propio silicio basado en Arm. El Apple M1 es el primer chip en este esfuerzo, que alimenta los últimos MacBook Air, Pro y el Mac Mini. El M1 presenta algunas mejoras de rendimiento impresionantes, lo que sugiere que los núcleos Arm de alto rendimiento son capaces de enfrentarse a los x86 en escenarios de computación más exigentes. No obstante, hay que recordar que las comparaciones de Apple se refieren a CPUs de tipo portátil, y no a ordenadores de sobremesa.

En el momento de escribir este artículo, el superordenador más potente del mundo, Fugaku, funciona con Arm

La arquitectura de Intel sigue estando por delante en términos de rendimiento bruto en el espacio del hardware de consumo. Pero Arm es ahora muy competitivo en los segmentos de productos en los que el alto rendimiento y la eficiencia energética siguen siendo clave, lo que incluye el mercado de los servidores. En el momento de escribir estas líneas, el superordenador más potente del mundo funciona por primera vez con núcleos de CPU de Arm. Su SoC A64FX está diseñado por Fujitsu y es el primero que ejecuta la arquitectura Armv8-A SVE.

Compatibilidad del software

Como hemos mencionado anteriormente, las aplicaciones y el software tienen que ser compilados para la arquitectura de la CPU en la que se ejecutan. El matrimonio histórico entre CPUs y ecosistemas (como Android en Arm y Windows en x86) significaba que la compatibilidad nunca fue realmente una preocupación, ya que las aplicaciones no necesitaban ejecutarse en múltiples plataformas y arquitecturas. Sin embargo, el crecimiento de las aplicaciones multiplataforma y los sistemas operativos que se ejecutan en múltiples arquitecturas de CPU están cambiando este panorama.

Los Macs de Apple basados en Arm, Chrome OS de Google y Windows de Microsoft en Arm son ejemplos modernos en los que el software debe ejecutarse tanto en arquitecturas Arm como Intel. La compilación de software nativo para ambas es una opción para las nuevas aplicaciones y los desarrolladores dispuestos a invertir en la recompilación. Para llenar los vacíos, estas plataformas también se basan en la emulación de código. Es decir, traducir el código compilado para una arquitectura de CPU para que funcione en otra. Esto es menos eficiente y degrada el rendimiento en comparación con las apps nativas, pero actualmente es posible una buena emulación para garantizar que las apps funcionen.

Tras años de desarrollo, la emulación de Windows en Arm se encuentra en un estado bastante bueno para la mayoría de las aplicaciones. Las aplicaciones de Android se ejecutan en los Chromebooks de Intel decentemente en su mayor parte también. Apple tiene su propia herramienta de traducción apodada Rosetta 2 para apoyar las aplicaciones heredadas de Mac también. Pero, los tres sufren penalizaciones de rendimiento en comparación con las aplicaciones compiladas de forma nativa.

Arm vs x86: La última palabra

Durante la última década de rivalidad entre Arm y x86, Arm se ha impuesto como la opción para dispositivos de bajo consumo como los smartphones. Ahora, la arquitectura también está avanzando en los portátiles y otros dispositivos en los que se demanda una mayor eficiencia energética. A pesar de haber perdido en los teléfonos, los esfuerzos de Intel en materia de bajo consumo también han mejorado a lo largo de los años, y ahora Lakefield tiene mucho más en común con los procesadores Arm tradicionales que se encuentran en los teléfonos.

Dicho esto, Arm y x86 siguen siendo claramente diferentes desde el punto de vista de la ingeniería y siguen teniendo puntos fuertes y débiles individuales. Sin embargo, los casos de uso de los consumidores entre ambos se están difuminando a medida que los ecosistemas admiten cada vez más ambas arquitecturas. Sin embargo, aunque la comparación entre Arm y x86 tiene sus puntos en común, es seguro que Arm seguirá siendo la arquitectura elegida por el sector de los smartphones en un futuro próximo. Además, esta arquitectura es muy prometedora para la computación y la eficiencia de los ordenadores portátiles.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *