Las diferencias entre ARM e Intel x86-64
Ahora que los chips ARM están omnipresentes en los ordenadores portátiles de alto rendimiento y en los servidores de borde, es legítimo preguntarse si vale la pena comprar estos nuevos dispositivos. Es hora de entender las diferencias técnicas entre los procesadores ARM y los predecesores x86-64 más potentes que antes dominaban el mercado de chips sin obstáculos.
¿Qué significa x86-64 de todos modos?
Los procesadores Intel que se encuentran en computadoras de escritorio y portátiles a veces se denominan procesadores “x86”. La arquitectura de 64 bits que utilizan todas las computadoras modernas hoy en día se basa en el modelo x86, que ahora se conoce como “x86-64”.
Todo esto suena un poco confuso, pero ayuda a explicar por qué hay dos carpetas de Archivos de programa diferentes en Windows.
Para simplificar las cosas, todas las aplicaciones de 32 bits van en la carpeta x86 y las de 64 bits en la otra carpeta. Esta ha sido una convención desde que Microsoft lanzó su versión de 64 bits de Windows XP en 2001.
Para simplificar un poco las cosas, nos referiremos a “x86-64” como “x86”, ya que hay suficientes similitudes entre los chips de 32 bits y 64 bits como para agruparlos.
La etiqueta “x86” proviene del abuelo del procesamiento moderno, un microprocesador creado por Intel llamado 8086. Este chip de 16 bits operaba bajo un conjunto de instrucciones que todavía se usa en gran parte en los procesadores modernos de hoy para realizar tareas informáticas avanzadas.
¡Todo, desde el editor de texto hasta el software avanzado de renderizado de vídeo, todavía tiene la capacidad de funcionar bajo una arquitectura que nació en 1978!
Desde el lanzamiento del microprocesador 8086, Intel siguió utilizando la convención de nombres para los modelos futuros, como el 80286 y el 80386, hasta que rompió con la tradición al lanzar la serie Pentium. No obstante, todavía rendimos homenaje a esos viejos chips categorizando todos los procesadores posteriores que utilizan su conjunto de instrucciones como “x86”.
Incluso los procesadores de 64 bits más modernos que AMD lanzó por primera vez en la serie Opteron en la década de 2000 reciben la misma designación, ya que la gran mayoría de los procesadores de 64 bits en sistemas de escritorio y servidores continúan basándose en el pilar del ahora humilde 8086.
Conjuntos de instrucciones
Toda la funcionalidad de un procesador se basa en lo que se denomina un conjunto de instrucciones. Se trata de un conjunto de operaciones rudimentarias que un chip puede realizar. Cada instrucción le indica al chip que haga cosas como cálculos matemáticos básicos y que mueva datos. En la base de cada bit de código de cada programa que ejecuta en su máquina hay una capa que se comunica con el procesador. Esta capa también utiliza su propio código, conocido como lenguaje ensamblador, que se traduce un paso más abajo en las instrucciones básicas, a las que a menudo se hace referencia como código de máquina o lenguaje de máquina.
Aquí es donde llegamos a la diferencia central entre los chips ARM y x86.
Los chips x86 utilizan un conjunto de instrucciones complejo (CISC) , mientras que los chips ARM utilizan un conjunto de instrucciones reducido (RISC) . Mientras que los chips CISC intentan poner más «trabajo» en una instrucción mientras sacrifican ciclos de reloj para lograr esta tarea, los chips RISC tienen (como su nombre lo indica) un conjunto de instrucciones mucho más pequeño que divide todo en pasos más simples que se pueden ejecutar en un solo ciclo de reloj.
CISCO vs. RIESGO
Si un chip CISC necesita multiplicar dos números, puede ejecutar un solo comando: MULT 2, 3
. Este único comando cubrirá la carga de números desde la memoria, los multiplicará y almacenará el resultado en la ubicación de memoria correcta. Un chip RISC que realice la misma operación requeriría muchos más pasos. Primero, una LOAD
instrucción para mover los números desde los registradores a la unidad de ejecución. Luego, una PROD
instrucción para multiplicar los números. Finalmente, una STOR
instrucción para colocar el resultado en el registro correcto.
Si bien el chip CISC puede parecer más eficiente porque sus comandos parecen más simples, tenga en cuenta algunas diferencias importantes:
- En primer lugar, los chips CISC ejecutan comandos en varios ciclos de reloj, mientras que cada instrucción en un chip RISC se ejecuta en un solo ciclo de reloj. Debido a esto, nuestro
MULT
comando hipotético podría ejecutarse en la misma cantidad de ciclos que el conjunto de instrucciones RISC que realizan la misma tarea. - En segundo lugar, todas las instrucciones y la lógica de CISC deben almacenarse en transistores. Los chips RISC pueden utilizar menos transistores porque necesitan almacenar menos instrucciones.
- En tercer lugar, el menor número de transistores requerido por RISC permite un menor consumo de energía.
El CISC tiene algunas ventajas. En primer lugar, la computadora no necesita hacer mucho trabajo para convertir un lenguaje de programación de nivel humano como C a un lenguaje ensamblador de nivel de procesador. De hecho, el MULT
comando mencionado anteriormente es muy similar al comando foo = foo * bar
C.
Los chips RISC exigen al compilador que haga mucho más trabajo para convertir el código en lenguaje ensamblador. Los chips CISC también pueden realizar sus operaciones directamente en la memoria del sistema, mientras que los chips RISC tienen que extraer datos de la memoria y colocarlos en los registros del procesador antes de trabajar con ellos.
En una competición de rendimiento entre ambos, en lo que respecta a los consumidores, no hay un claro ganador. Sin embargo, RISC tiene un as más bajo la manga para sacarle una ventaja real a CISC.
El consumo de energía
Entre CISC y RISC, no hay absolutamente ninguna competencia en lo que se refiere al consumo de energía. RISC se lleva la palma sin lugar a dudas. Un conjunto de instrucciones reducido proporciona un espacio reducido en la oblea, lo que hace que el chip sea más pequeño y, por lo tanto, consume menos energía.
Los chips más pequeños, con menos componentes microscópicos, también tienen que lidiar con una menor resistencia eléctrica y no requieren tantos vatios para funcionar. El mejor ejemplo de ello es la tecnología probada del teléfono inteligente, un dispositivo “computadora ligera” que ofrece un inmenso rendimiento para su tamaño relativamente pequeño, pero que logra subsistir en muchos casos durante más de 24 horas con una batería comparativamente pequeña.
Dicho esto, esto no significa que todos los ordenadores vayan a utilizar chips ARM para reducir el consumo de energía. En el mercado de los ordenadores de sobremesa, donde el sistema suele depender de una conexión directa a un enchufe de pared en lugar de una batería, la eficiencia energética no es una prioridad tan grande. Los chips CISC siguen teniendo un rendimiento sorprendente en estas situaciones y no hay señales de que esto vaya a cambiar en un futuro próximo, en realidad.
¿Debería adquirir un sistema ARM o x86?
Sin embargo, todo se reduce a una pregunta muy sencilla: ¿estás intentando exprimir al máximo el rendimiento por vatio-hora de energía que proporciona tu batería? ¿O estás más inclinado a exigirle al dispositivo el máximo rendimiento en detrimento de la duración de la batería?
En la mayoría de los casos de uso para los que alguien compraría un sistema, la decisión es así de simple. Al final, ¡solo asegúrate de no olvidarte de llevar contigo el cable de carga!
Crédito de la imagen: Un ingeniero con traje esterilizado sostiene un microchip, de DepositPhotos
Deja una respuesta