La arquitectura ARM no es nada nuevo, pero sí que está en boca de todos los entusiastas del hardware gracias a que Apple ha decidido darle una vuelta de tuerca a sus equipos y decidió abandonar la arquitectura x86 para pasar a usar ARM. Esto nos lleva a la inevitable pregunta, ¿llegará un momento en el que la arquitectura ARM pueda reemplazar a la actual x86 en PC? ¿Y aunque sea en portátiles? Vamos a verlo.
Hasta ahora las arquitecturas ARM y x86 no competían la una con la otra, ya que estaban diseñadas para fines diferentes. Ahora la cosa cambia, con Apple lanzando sus Mac Mini con procesadores ARM y con unos resultados bastante capaces, por lo que la eterna discusión vuelve a resurgir y con los mismos ejemplos de siempre; por ejemplo, mientras que un procesador «medio» x86 de escritorio consume entre 65 y 130 vatios, un procesador ARM puede hacer lo mismo con apenas 7-10 vatios así que, ¿si consume tan poco por qué no sustituye la arquitectura ARM a la x86?
¿Puede ARM hacer realmente lo mismo que x86?
La respuesta corta a esto es que sí, ARM puede llegar a hacer lo mismo, pero tiene unos matices muy importantes que conllevan el «de qué manera», y sobre todo el «en cuánto tiempo» (en términos de rendimiento). x86 utiliza la tecnología CISC, con conjuntos de instrucciones más amplios y orientados a solucionar problemas más complejos, mientras que ARM emplea RISC (que de hecho es la R de ARM), mucho más simple.
CISC | RISC |
---|---|
Instrucciones multiciclo | Instrucciones de un único ciclo |
Carga y almacenamiento incorporados en otras instrucciones | Carga y almacenamiento son instrucciones independientes |
Arquitectura memoria-memoria | Arquitectura registro-registro |
Instrucciones largas, código con pocas líneas | Instrucciones cortas, código con muchas líneas |
Utiliza memoria de microprograma | Implementa las instrucciones directamente en hardware |
Se enfatiza la versatilidad del repertorio de instrucciones | Se añaden instrucciones nuevas solo si son de uso frecuente y no reducen el rendimiento de las más importantes |
Reduce la dificultad de implementar compiladores | Compiladores muy complejos |
Elimina el micro código y la decodificación de instrucciones complejas |
Así pues, tenemos que los procesadores x86 están orientados al rendimiento y la versatilidad, mientras que ARM se orienta más hacia el bajo consumo y con opciones limitadas. Un procesador ARM puede llegar a hacer lo mismo que un x86 pero por caminos diferentes, siempre bastante más elaborados, y eso al final repercute mucho en el rendimiento en términos del tiempo que se tarda en llevar a cabo.
En cambio, ARM tiene la ventaja de ser más simple y por ello el tamaño de los núcleos se reduce considerablemente frente a sus rivales, así que son capaces de incorporar un mayor número de estos núcleos aunque sean más lentos, logrando así que las cargas de trabajo se puedan dividir y optimizar más.
En definitiva, ARM sí que puede hacer lo mismo que x86, solo que de manera bastante diferente. Ahora bien, esto no quiere decir que se pueda reemplazar una arquitectura con la otra, al menos no tan fácilmente y vamos a ver por qué.
El hardware no tiene sentido sin software
La prueba viviente de este impedimento la está viviendo Apple. Ellos, antes de presentar sus procesadores basados en ARM, ya dedicaron muchísimo tiempo y esfuerzo en adaptar su sistema operativo y, de hecho, crearon un kit de desarrollo para que los desarrolladores de software pudieran hacer lo propio. Visto de otra manera, esto significa que el software está diseñado para una arquitectura en concreto, es decir, no puedes ejecutar un programa que ha sido diseñado para x86 en un equipo basado en ARM.
Por lo tanto, no es cuestión únicamente de que lo uno pueda hacer el trabajo de lo otro, es que hay que adaptar o portar todo el software, y esto es algo que ni todas las empresas pueden hacer, ni todas las empresas se pueden permitir. Por lo tanto, es algo que en la actualidad no tiene viabilidad ni tan si quiera a medio plazo; a largo plazo es algo que podría llegar a suceder, pero no podemos esperarlo pronto ni mucho menos.
¿Qué sentido tiene que ARM reemplace a x86?
En entornos donde el consumo es un factor crucial, y al mismo tiempo donde se realicen unas tareas muy concretas y repetitivas, es donde esto tiene sentido. Por ejemplo, imaginad un servidor de base de datos que tiene un procesador y resto de hardware basado en x86 convencional, y que realiza una tarea de gestión de base de datos y nada más. Ese servidor necesita un procesador muy potente con un alto consumo, y sin embargo podría ser fácilmente sustituido por uno o varios procesadores ARM con muchos más núcleos menos potentes pero que dan como resultado un rendimiento igual o superior y con un consumo sumamente inferior.
Esto es así porque simplemente a base de un mayor número de núcleos están consiguiendo el mismo resultado con un consumo inferior, pero es porque la tarea es muy concreta y tanto el hardware como el software han sido diseñados para ello. Ya si nos tenemos que referir a un PC de uso cotidiano, sea cual sea su función, entonces la cosa cambia pues nos veremos en tesituras donde este bajo consumo de ARM no merece la pena porque se tarda demasiado en realizar ciertas funciones que un procesador x86 hace en un abrir y cerrar de ojos gracias a sus conjuntos de instrucciones.
Esto mismo se aplica al ecosistema de los ordenadores portátiles, donde ciertamente el consumo es mucho más importante que en un PC de sobremesa simplemente por la autonomía de batería, pero donde se necesita la misma versatilidad que en un PC convencional.
En resumidas cuentas, es posible que ARM termine reemplazando a x86 pero por ahora solo teóricamente, ya que ni es necesario ni parece que los desarrolladores lo quieran (precisamente por que no es necesario). Ahora bien, sí que es posible que en entornos profesionales y especialmente de servidores las compañías comiencen a desarrollar bajo ARM para ganar eficiencia, ya que al fin y al cabo eso supondrá a la larga un buen ahorro de costes.