En los últimos tiempos estamos viendo cómo las arquitecturas ARM y x86 empiezan a entrar en conflicto. Parecía bastante claro, hace unos años, que ARM era para móviles y x86 era para equipos portátiles y sobremesas. Intel trató de llevar la arquitectura x86 al segmento de los dispositivos móviles y tabletas con los procesadores Atom, y tuvo un momento prometedor cuando aparecieron los primeros móviles con procesador x86 Atom allá por 2012.
Curiosamente, Intel tenía procesadores ARM allá por el año 2002 con su microarquitectura XScale. Era ARM v5, y tenía en su repertorio de soluciones SoCs para teléfonos móviles incluso, como los Palm Tungsten o los Dell Axim. Sin embargo, en 2006 Intel vendió esta tecnología a Marvell Technology para centrarse en los procesadores x86 y el negocio de los servidores. 10 años después, Intel incluso estaba trabajando en un módem 5G para teléfonos móviles, una vez que su aventura en el mercado de la telefonía móvil había acabado no demasiado bien.

Foto: El iPhone 3G, en 2009, usaba un SoC basado en el core ARM11, single core y pipeline de 8 etapas.
Ahora, en 2020, ARM se ha consolidado como una propuesta válida no solo para dispositivos móviles y tabletas, sino también para procesadores en centros de datos y para mover equipos portátiles con Windows y hasta como sustitutos de los procesadores x86 en las futuras familias de ordenadores con macOS.
Dos mundos, dos arquitecturas, pero con tecnologías similares
ARM es el acrónimo de Acorn RISC Machine, que pasaría a ser más tarde Advanced RISC Machine. RISC, a su vez, es el acrónimo de Reduced Instruction Set Computing. Ambos son tipos de ISAs (Instruction Set Architectures. RISC, a su vez, se diferencia de CISC (Complex Instruction Set Computing). Básicamente, un procesador es una calculadora que opera con bits realizando operaciones aritmético-lógicas. Las instrucciones que se usan en los lenguajes de programación son una forma de “decir” a estas calculadoras qué operaciones tiene que realizar un programa para llegar a un resultado. Incluso las pantallas son dispositivos que “pintan” cadenas de bits en posiciones dadas y con colores determinados, conformando la imagen en pantalla.
En una arquitectura RISC, las instrucciones se corresponden de un modo “cercano” con las micro operaciones que se necesitan realizar en los registros, unidades de ejecución y otros elementos del procesador para completar una tarea. En una arquitectura CISC, las instrucciones son complejas, en tanto en cuanto una sola instrucción de ensamblador puede realizar tareas complicadas, pero en algún momento acaban por convertirse en micro-ops más sencillas para que sean realizables por el procesador.

Foto: En un procesador Intel x86, las instrucciones CISC se “trocean” para convertirlas en RISC internamente.
Estas micro-ops pueden, de hecho, paralelizarse de modo que la ejecución de instrucciones puede utilizar de forma más eficiente los recursos de hardware de los procesadores. Intel introdujo las micro-ops en su procesador Pentium Pro con arquitectura P6, que a su vez es la predecesora de la arquitectura Core, en detrimento de la arquitectura NetBurst.
Parece un poco absurdo utilizar una arquitectura CISC de cara a la galería y luego convertirla en RISC para ejecutar las instrucciones, pero la base instalada de procesadores y el software existente crean inercias que no son fáciles de contrarrestar.
El problema de las arquitecturas CISC, o uno de ellos, es que, para implementar la descodificación de las instrucciones complejas en otras más simples, es necesario aumentar el número de transistores en los chips, lo cual supone aumentar el consumo para realizar tareas que no son propiamente dichas las que se usan para ejecutar un programa dado. El “temazo” es que las instrucciones CISC no son fáciles de paralelizar, lo cual impide el aprovechamiento de las arquitecturas Out of Order basadas en pipelines de ejecución con múltiples etapas. Ese “lastre” de consumo impide que el procesador funcione correctamente por debajo de ciertos Vatios.
Atom, por ejemplo, para reducir el consumo energético, prescindía de la ejecución Out of Order (OoOE), y de paso también de la descodificación en micro ops. De este modo, el consumo puede ser de unos pocos Vatios siendo funcional. En 2013, con Silvermont, Intel introdujo OoOE en los Atom, pero solo después de varias generaciones en las que no era así.
Dos trenes que colisionan
ARM viene desde las plataformas de bajo consumo como las de la telefonía móvil y sistemas embebidos, integrando instrucciones progresivamente más complejas y asumiendo consumos energéticos más ambiciosos hasta llegar al territorio de los equipos portátiles.
X86 viene desde las plataformas de alto consumo, donde los Vatios no son (en general) un problema, pero tratando de “aligerar lastre” para llegar a consumos por debajo de 10 Vatios sin que se vea perjudicado el rendimiento.

Foto: Amazon o Google usan procesadores basados en la arquitectura ARM, como los Graviton de Amazon con arquitectura Neoverse N1.
En este momento, ARM está ya entrando en el segmento de los procesadores para centros de datos con la arquitectura Neoverse, adoptada por Google o Amazon para diseñar sus propios procesadores. Incluso el súper ordenador número uno en la lista Top500 está basado en procesadores ARM. Y también estamos viendo que, en el segmento de consumo, ARM está llegando a los equipos portátiles. Primero con Windows RT para tabletas, luego con Windows 10 para ARM, y ahora con macOS sobre ARM en los próximos portátiles MacBook Pro de 13’’ y MacBook Air seguramente, para luego pasar a los iMac.
La colisión parece inminente, y hasta Linus Torvalds empieza a decantarse más por una tecnología como ARM, aunque sin negar que x86 tiene la baza del software y los desarrolladores, a la espera de Lakefield.
El resultado de esta colisión de trenes puede tener consecuencias importantes en el mercado de los semiconductores. Mientras fijamos la atención en la competencia entre Intel y AMD para el segmento portátil convertible, 2 en 1 y Ultrabook, ARM va a llegar a los equipos MacBook en pocos meses. Como su superioridad sobre macOS sea tan irrefutable como parece que será, es cuestión de (poco) tiempo que ARM llegue también a equipos Windows portátiles y los desarrolladores de software migren sus suites de aplicaciones y programas a ARM, dejando a Intel en una posición complicada.
AMD puede seguir enfocada en equipos de sobremesa para gamers o entusiastas, así como en equipos portátiles para gaming donde no es tan sencillo como cambiar un procesador por otro, al estar implicadas también las tarjetas gráficas e interfaces como PCIe. Y, en el segmento de servidores, x86 aún tiene “cuerda” a pesar de que ARM también está capturando interés en este segmento.