

Android es compatible con 3 diferentes arquitecturas de procesador: ARM,
Intel
y MIPS. El más popular y omnipresente de estos tres es, sin lugar a dudas, ARM.
Intel
es conocida principalmente por su popularidad en los mercados de escritorio y servidor, sin embargo en el móvil ha tenido un impacto menor. MIPS tiene una larga herencia, y un montón de éxito, tanto para soluciones de 32 y 64 bits en una variedad de espacios incrustados, sin embargo, es actualmente el menos popular de los tres diseños de CPU para Android.
En resumen, ARM es el ganador actual e
Intel
es su gran rival de la marca. Entonces, ¿cuál es la diferencia entre un procesador ARM y un procesador
Intel
? ¿Por qué es ARM la elección más popular? E importa que CPU se encuentra en su teléfono inteligente o tablet?
La CPU
La Unidad Central de Procesamiento (CPU) es el "cerebro" de su dispositivo. Su trabajo consiste en ejecutar una secuencia de instrucciones para controlar el hardware del dispositivo (la pantalla, la pantalla táctil, el módem celular, etc.) para convertirlo de un trozo de plástico y metal en un smartphone o tablet vibrante. Los dispositivos móviles son cosas complejas y estas CPUs tienen que ejecutar millones de instrucciones para que se comporten como esperamos. La velocidad, la potencia y la eficacia de estas CPUs es crítica. La velocidad afecta a la experiencia del usuario, mientras que la eficiencia afecta a la vida de la batería. El dispositivo móvil perfecto es uno que tiene un alto rendimiento y bajo consumo de energía.
Esta es la razón por la cual, la elección de la CPU es importante. Hambre de poder, un CPU agotará la batería rápida, sin embargo, un CPU elegante y eficiente le dará tanto rendimiento y duración de la batería. Al más alto nivel, la primera diferencia entre una CPU ARM y una CPU de
Intel
es que el primero es RISC (Conjunto reducido de instrucciones de Computing) y el segundo es CISC (Conjunto de instrucciones complejas). En simplificado (y enfatizo, "simplificado"
los términos del laico, conjuntos de instrucciones RISC son más pequeñas, más atómicas, mientras que los conjuntos de instrucciones CISC son más grandes, más complejas. Por atómica, me refiero a que cada instrucción se podría traducir como una sola operación que la CPU puede realizar, por ejemplo, añadir el contenido de dos registros juntos. Instrucciones CISC expresan una sola idea, pero la CPU necesitarán para ejecutar 3 o 4 instrucciones más simplificados para llevar a cabo la misma. Por ejemplo, una CPU CISC se le puede decir a sumar dos números almacenados en la memoria principal. Para ello, la CPU tiene que buscar el número de la dirección-1 (una operación), ir a buscar el número de la dirección-2 (segunda operación), añadir los dos números (tercera operación) y así sucesivamente.

los términos del laico, conjuntos de instrucciones RISC son más pequeñas, más atómicas, mientras que los conjuntos de instrucciones CISC son más grandes, más complejas. Por atómica, me refiero a que cada instrucción se podría traducir como una sola operación que la CPU puede realizar, por ejemplo, añadir el contenido de dos registros juntos. Instrucciones CISC expresan una sola idea, pero la CPU necesitarán para ejecutar 3 o 4 instrucciones más simplificados para llevar a cabo la misma. Por ejemplo, una CPU CISC se le puede decir a sumar dos números almacenados en la memoria principal. Para ello, la CPU tiene que buscar el número de la dirección-1 (una operación), ir a buscar el número de la dirección-2 (segunda operación), añadir los dos números (tercera operación) y así sucesivamente.

Todas las CPUs modernas usan un concepto conocido como microcódigo, una instrucción interna de la CPU que describe operaciones atómicas que la CPU puede realizar. Son estas (micro) operaciones más pequeñas que la CPU ejecuta realmente. En los procesadores RISC, el conjunto de instrucciones de operaciones y las operaciones de microcódigo están muy cerca. En CISC, las instrucciones complejas deben traducirse en operaciones de microcódigo más pequeños (como se describió anteriormente con la CISC). Esto significa que el decodificador de instrucciones (el bit que funciona, lo que la CPU tiene que hacer en realidad) es mucho más simple en un procesador RISC, y más simple por lo tanto usa menos energía y posee una mayor eficiencia.
Fabs
La próxima gran diferencia entre un procesador ARM y un procesador de
Intel
es que ARM sólo ha diseñado procesadores eficientes de energía. Su razón de ser, es el diseño de procesadores de uso de baja potencia. Esa es su especialidad. Sin embargo la experiencia de
Intel
es diseñar procesadores de altas prestaciones de escritorio y de servidor. Y ha hecho un buen trabajo.
Intel
es el líder de la industria en equipos de sobremesa y servidores. Cada PC, ordenador portátil y servidor que he tenido (con la excepción de uno) en los últimos 20 años tuvieron un procesador
Intel
. Sin embargo, para entrar en el móvil,
Intel
está utilizando la misma arquitectura del conjunto de instrucciones CISC (ISA) que se utiliza en el escritorio, pero está tratando de meterlos con calzador en los procesadores más pequeños, adecuados para los dispositivos móviles.
"Cuando se trata de 64 bits, también hay algunas diferencias significativas entre ARM e Intel "
El procesador
Intel
i7 promedio produce alrededor de 45W de calor. El ARM promedio Soc (incluyendo la GPU) produce diez veces menos, 4.5W. Ahora
Intel
es una empresa grande y tienen un montón de gente inteligente que trabajan allí. Sus últimos procesadores Atom tienen diseños térmicos similares a los procesadores basados en ARM, sin embargo, para hacer eso se ha tenido que utilizar el último proceso de fabricación de 22 metros. En general cuanto menor sea el número de nanómetros de fabricación, mejor será la eficiencia energética. Procesadores ARM tienen propiedades térmicas similares a mayores procesos de fabricación. Por ejemplo, el Qualcomm Snapdragon 805 utiliza un proceso de 28nm.
64-bits
Cuando se trata de 64 bits, también hay algunas diferencias significativas entre ARM e Intel . ¿Sabía usted que Intel ni siquiera inventó la versión de 64 bits de su conjunto de instrucciones x86. Conocido como x86-64 (o a veces sólo x64), el conjunto de instrucciones fue diseñado en realidad por AMD. La historia es la siguiente, Intel quería pasar a 64 bits, pero sabía que para tomar su actual arquitectura x86 de 32 bits y crear una versión de 64 bits sería ineficiente. Así comenzó un nuevo proyecto de procesador de 64 bits llamado IA64. Esto a la larga produce la gama de procesadores Itanium. Mientras tanto AMD sabía que no sería capaz de producir procesadores compatibles IA64, por lo que se adelantó y extendió el diseño x86 incluyendo un direccionamiento de 64 bits y registros de 64 bits. La arquitectura resultante, conocida como AMD64, se convirtió en el estándar de 64-bit de facto para los procesadores x86.
El proyecto IA64 nunca fue un gran éxito y hoy en día está prácticamente muerto. Intel finalmente adoptó AMD64. Ofertas móviles actuales de Intel son procesadores de 64 bits utilizando el conjunto de instrucciones de 64 bits diseñado por AMD (con algunas diferencias de menor importancia).
En cuanto a ARM, la historia es una muy diferente. Viendo la necesidad de informática de 64 bits en el móvil, ARM anunció su ARMv8 con arquitectura de 64 bits en 2011. Fue la culminación de varios años de trabajo en la próxima generación ARM ISA. Para crear una aplicación de 64 bits limpio, pero basado en los principios y conjunto de instrucciónes existentes , la arquitectura ARMv8 utiliza dos estados de ejecución, AArch32 y AArch64.
Como su nombre indica, se trata de la ejecución de código de 32 bits y otra para 64 bits. La belleza del diseño ARM es que el procesador puede cambiar sin problemas de un modo a otro durante su ejecución normal. Los medios que el decodificador usa para las instrucciones de 64 bits es un nuevo diseño que no necesita para mantener la compatibilidad con la era de 32 bits, sin embargo, el procesador en su conjunto sigue siendo compatible con versiones anteriores.
Cómputo heterogéneo
Arquitectura Big.little de ARM es una innovación que Intel está muy lejos de replicar. En Big.little los núcleos en la CPU no necesitan ser del mismo tipo. Tradicionalmente, un procesador de doble núcleo o de cuatro núcleos tenía 2 o 4 núcleos del mismo tipo. Así que un procesador de doble núcleo Atom tiene dos núcleos x86-64 idénticos, ambos ofrecen el mismo rendimiento y utilizan la misma cantidad de energía. Pero con Big.little ARM ha introducido el cómputo heterogéneo para dispositivos móviles. Esto significa que los núcleos pueden ser diferentes en términos de rendimiento y potencia. Cuando el dispositivo móvil no está ocupado, un núcleo de baja energía se puede utilizar, pero cuando empiezas un juego complejo, se utilizan los núcleos de alto rendimiento.
Pero aquí está la magia. Cuando se habla de diseños de CPU hay un montón de diseños técnicos que alteran el rendimiento y el consumo de energía del procesador. Cuando una instrucción se decodifica y se prepara para la ejecución del procesador ( Intel y ARM) utiliza un Pipeline. Eso significa que cada aspecto del proceso de decodificación es paralelizado. Así que la parte para ir a buscar la siguiente instrucción de la memoria es la etapa 1, entonces el tipo de instrucción necesita ser examinado y decoded- etapa 2, a continuación, la instrucción se ejecuta realmente - etapa 3, y así sucesivamente. La belleza del Pipeline es que mientras que la primera instrucción está en la etapa 2, la siguiente instrucción ya está en la etapa 1. Cuando la primera instrucción está en la etapa de ejecución (etapa 3), la segunda instrucción está ahora en la etapa 2 y la tercera instrucción está en la etapa 1, y así sucesivamente.
"
Este principio de la utilización de una lógica más compleja en el procesador para un mejor rendimiento, y una lógica menos compleja para alta eficiencia, no sólo se aplica al Pipeline de instrucción"
Para hacer las cosas aún más rápido estos Pipelines se pueden construir de modo que las instrucciones pueden ser ejecutadas en un orden diferente que en el programa. Hay una cierta lógica inteligente para averiguar si la siguiente instrucción se basa en el resultado de la instrucción por delante de él. Tanto Intel y ARM tienen lógica fuera de la ejecución de órdenes. Pero como se puede imaginar que es una tecnología muy compleja. Complejo significa hambre de poder. En los procesadores de Intel los diseñadores optan por aplicar fuera de la ejecución de órdenes o no. Pero con el cómputo heterogéneo no es un problema. El ARM Cortex-A53 utiliza la ejecución en orden, lo que significa que utiliza menos energía. Pero el Cortex-A57 utiliza fuera de la ejecución de órdenes, lo que significa que es más rápido, pero consume más energía. En un procesador Big.little no puede haber núcleos Cortex-A53 y Cortex-A57, y los núcleos se utiliza de acuerdo con las exigencias que se plantean. Usted no necesita una súper rápida ejecución fuera de orden a fondo para sincronizar su correo electrónico, pero si al jugar juegos complejos. Entonces el núcleo derecho se utiliza en el momento adecuado.

Este principio de la utilización de una lógica más compleja en el procesador para un mejor rendimiento y menos lógica compleja para alta eficiencia, no sólo se aplica al Pipeline de la instrucción. Se aplica igualmente a la unidad de coma flotante, a la lógica SIMD (es decir NEON en ARM y SSE / MMX de Intel ), y la forma en la caché L1 y L2 de trabajo. Intel ofrece una solución por Atom SoC, ARM, a través de sus socios de silicio, ofrece múltiples configuraciones de muchos de los cuales se pueden implementar simultáneamente en el mismo encapsulado.

Compatibilidad
ARM es el líder actual en términos de procesadores móviles. Socios de ARM han enviado 50 mil millones de chips basados en sus diseños, todos los mercados móviles y embebidos. Para Android, ARM es el estándar de facto y esto lleva a un problema para Intel y MIPS. Aunque Android utiliza Java como lenguaje de programación principio, también permite a los programadores tomar su código existente (en C o C ++, por ejemplo) y crear aplicaciones. Estas aplicaciones "nativas" en general son compilados para procesadores ARM y no siempre para Intel o MIPS. Para evitar esto Intel y MIPS necesidad de utilizar software de traducción especial que convierte las instrucciones ARM a código para sus procesadores. Este sistema obviamente crea impactos en el rendimiento. Por el momento MIPS e Intel pueden reclamar una compatibilidad del 90% de todas las aplicaciones disponibles en el Play Store. Esa cifra es probablemente más cercano a 100% cuando se trata de las 150 mejores aplicaciones. Por una mano que es una buena cobertura, pero por otro lado, muestra el dominio de ARM en que los otros diseñadores de procesadores tienen la necesidad de ofrecer una capa de mejor compatibilidad.
La construcción de un CPU es un negocio complejo. ARM, Intel y MIPS están trabajando duro para traer la mejor tecnología disponible para los dispositivos móviles, sin embargo ARM es claramente el líder. Con su enfoque en procesadores eficientes de energía, su aplicación de 64 bits limpio, su cómputo heterogéneo, y su papel como el estándar de facto para la informática móvil, entonces parece que ARM se establece a permanecer en la parte superior.


