Informática › Procesadores
Cuando pensamos en Arm seguro que lo primero que se nos viene a la cabeza son los procesadores móviles. Y es que, si bien es cierto que históricamente Intel ha sido el líder en la fabricación de chips, durante los últimos años Arm se ha abierto paso en el mundo móvil gracias a sus eficientes procesadores.
Por eso, los procesadores Arm dominan el mercado y todos los modelos importantes de los fabricantes Qualcomm, Samsun, Apple, MediaTek, etc. están construidos sobre su arquitectura. Miles de millones de chips utilizados en teléfonos, televisores inteligentes, aplicaciones integradas, sistemas biométricos y tabletas. Pero ¿por qué es así? ¿Por qué los procesadores x86 no han podido competir?
Lo primero que hay que tener en cuenta es que Arm no fabrica procesadores. En su lugar, diseñan arquitecturas de CPU y licencian esos diseños a otras empresas como Qualcomm, Apple o Samsung que lo incorporan a sus procesadores. Dado que todos utilizan un estándar común, los programas y aplicaciones que se ejecutan en un procesador Snapdragon (Qualcomm) también se puede ejecutar en un procesador Exynos (Samsung).
Conjunto de instrucciones de la arquitectura (ISA)
El ISA es una especificación que detalla las instrucciones que una unidad central de procesamiento puede entender y ejecutar. No se trata de un componente físico en sí como una caché o un núcleo, sino que un ISA define cómo funcionan todos los aspectos de un procesador. Esto incluye el tipo de instrucciones que el chip puede procesar, cómo deben formatearse los datos de entrada y salida, cómo interactúa el procesador con la RAMEl ISA son el conjunto de los comandos implementados en una CPU
Dicho de otra forma, un ISA es un conjunto de especificaciones mientras que una CPU es la implementación de esas especificaciones. El ISA es un plano de cómo funcionarán todas las partes de una CPU.
Los ISA especifican el tamaño de cada pieza de datos, con la mayoría de los procesadores modernos usando un modelo de 64 bits. Mientras que todos los procesadores realizan las tres funciones básicas de lectura de instrucciones, ejecución de esas instrucciones y actualización de su estado en función de los resultados, las diferentes ISA pueden desglosar aún más estos pasos.
Un ISA complejo como el x86 normalmente dividirá este proceso en varias docenas de operaciones más pequeñas para mejorar el rendimiento. Tareas como la predicción de ramas para las instrucciones condicionales y la búsqueda previa de futuros datos también son especificadas por un ISA.
Además de definir la microarquitectura de un procesador, un ISA especificará un conjunto de instrucciones que puede procesar. Las instrucciones son lo que una CPU ejecuta cada ciclo y son producidas por un compilador. Hay muchos tipos de instrucciones como lectura/escritura de memoria, operaciones aritméticas, operaciones de ramificación/salto, y más. Un ejemplo podría ser “añadir el contenido de la dirección de memoria 1 al contenido de la dirección de memoria 2 y almacenar el resultado en la dirección de memoria 3”.
Cada instrucción será típicamente de 32 o 64 bits de largo y tendrá varios campos. El más importante es el opcode que le dice al procesador qué tipo específico de instrucción es. Una vez que el procesador sabe qué tipo de instrucción va a ejecutar a continuación, obtendrá los datos relevantes necesarios para esa operación. La ubicación y el tipo de datos se darán en otra parte del opcode. Aquí hay algunos enlaces a partes de las listas de opcode de Arm y x86.
CISC Vs. RISC Vs. SISC
Existen principalmente tres tipos de ISA: CISC (Complex Instruction Set Computer), RISC (Reduced Instruction Set Computer) y SISC (Simple Instruction Set Computing). Con una arquitectura RISC, cada instrucción especifica directamente una acción para que la CPU la realice y son relativamente básicas. Por otro lado, las instrucciones en una arquitectura CISC son más complejas y especifican una idea más amplia para la CPU.x86 es una arquitectura CISC, mientras que ARM es una arquitectura RISC
Esto significa que una CPU CISC normalmente descompondrá cada instrucción en una serie de microoperaciones. Una arquitectura CISC puede codificar muchos más detalles en una sola instrucción, lo que puede mejorar enormemente el rendimiento.
Por ejemplo, una arquitectura RISC puede tener sólo una o dos instrucciones “Add”, mientras que una arquitectura CISC puede tener 20, dependiendo del tipo de datos y otros parámetros para el cálculo. Una comparación más detallada entre RISC y CISC se puede encontrar aquí.
Debo añadir que tanto la arquitectura CISC como la RISC son viejas y están algo anticuadas. Aun así, tienen un papel fundamental en el desarrollo de nuevas arquitecturas. Además, a día de hoy las diferencias entre estas arquitecturas es cada vez más borrosa. Esto se debe a que las tecnologías se han fusionado y han evolucionado de manera que las arquitecturas actuales comparten ahora las principales características tanto de CISC como de RISC.
Por ejemplo, la familia de procesadores Intel, que comenzó con una aproximación a la arquitectura CISC, evolucionó de los chips de la serie Pentium (procesadores i486 y más recientes) para convertirse en una arquitectura híbrida. Para reforzar este punto, un estudio realizado en la Universidad de Wisconsin mostró entre otras cosas que la ISA no desempeña un papel significativo en los procesadores actuales y que el hecho de que la ISA sea RISC o CISC parece bastante irrelevante.
Arm y el consumo de energía
Si has entendido el punto anterior podrás adivinar que los procesadores CISC para hacer operaciones más complejas necesitan utilizar y encender más transistores a la vez, esto provoca que su consumo sea más alto. Y en un escenario móvil la eficiencia energética es mucho más importante que el rendimiento.Mientras que una CPU x86 de escritorio de alta gama puede consumir 200 vatios a la carga, un procesador móvil consume como máximo unos 2 o 3 vatios. En realidad, se pueden hacer y se hacen CPU x86 de menor potencia, pero el paradigma CISC es más adecuado para chips más potentes. Hasta que la tecnología de las baterías no mejore, el consumo de calor y energía seguirá siendo el principal factor limitante a la hora de diseñar un producto móvil.
¿Y por qué Arm es capaz de lograr tan buena eficiencia energética? Todo se remonta a su diseño RISC y a la complejidad de la arquitectura. Ya que no necesita ser capaz de procesar tantos tipos de instrucciones, la arquitectura interna también puede ser mucho más simple. También hay menos gastos generales en la gestión de un procesador RISC.
Todo esto se traduce directamente en ahorro de energía. Un diseño más simple significa que más transistores pueden contribuir directamente al rendimiento en lugar de ser utilizados para gestionar otras partes de la arquitectura.
Diseño de procesadores Arm
Otra característica clave que Arm ha puesto sobre la mesa es la arquitectura de computación heterogénea big.LITTLE con núcleos potentes y núcleos de bajo consumo. El chip analizará la utilización del sistema para determinar qué núcleo activar.Si el dispositivo está inactivo o simplemente ejecutando un cálculo básico, el núcleo de menor potencia se encenderá y el núcleo más potente se apagará. Arm ha declarado que esto puede proporcionar hasta un 75% de ahorro de energía. Aunque una CPU de escritorio tradicional ciertamente reduce su consumo de energía durante los períodos de carga más ligera, hay ciertas partes que nunca se apagan. Dado que Arm tiene la capacidad de apagar completamente un núcleo, supera claramente a la competencia.
Licencias
El enfoque de la licencia de Arm es otra razón para su dominio del mercado. Construir físicamente chips es inmensamente difícil y costoso, así que Arm no hace eso. Esto permite que sus ofertas sean más flexibles y personalizadas.Dependiendo del caso de uso, un fabricante puede elegir las características que desee y luego Arm selecciona el mejor tipo de chip para él.
Los fabricantes también pueden diseñar sus propios chips patentados e implementar solo algunos de los conjuntos de instrucciones de Arm.
Apple, Nvidia, Samsung, AMD, Broadcom, Fujitsu, Microsoft, Amazon, Huawei y Qualcomm utilizan la tecnología de Arm en algunos procesadores
Microsoft ya lleva algunos años desarrollando su Windows 10 para Arm para su uso en las tablets Surface y otros dispositivos ligeros. Aunque aún tiene mucho que mejorar, ya se ha visto que Arm puede funcionar en Windows perfectamente.
Amazon Eco y el Home Mini de Google funcionan con procesadores Arm
Apple también ha llevado MacOS a Arm y su primera generación de dispositivos que montan el procesador M1 están dando unos resultados excelentes. Cuando las aplicaciones están compiladas de forma nativa para Arm, estos Macs están mostrando no solo eficiencia energética sino también una potencia impresionante (al nivel de los procesadores x86 de gama alta).
Incluso en los centros de datos Arm está creciendo en popularidad de manera mucho más rápida de lo que se esperaba.
Espero que este artículo te haya ayudado a comprender un poco mejor el éxito de la arquitectura Arm tanto en móviles como en procesadores de escritorio.
Te puede interesar...
¿Qué es un exaFLOPS? ¿Es mucho?
Filtrados los benchmarks del Core i9-10900F de 10 cores... Peores que los del procesador para portátiles AMD Ryzen 9 4900HS
Pasta térmica Vs. Metal líquido - rendimiento, ventajas e incovenientes
Diferencias entre las placas B550 y X570
Qué son los petaFLOPS - ¿es mucho o poco?
¿Caduca la pasta térmica? ¿Cada cuánto tiempo tengo que cambiarla?
Qué es el CCX en los procesadores AMD Ryzen
Rendimiento del Ryzen 5 5600X