¿Por qué la arquitectura de ARM de 64 bits es bueno para los desarrolladores y bueno para los usuarios

ARM Cortex-A57 Big.little / a53La historia de la computación de 64 bits es muy variada e interesante. Empresas como Cray comenzó a usar registros de 64 bits en sus sistemas en la década de 1970, sin embargo pura computación de 64 bits en realidad no llegaría hasta la década de 1990. Primero fue la R4000 de MIPS, y luego el procesador Alpha de diciembre A mediados de la década de 1990 Intel y Sun ambos tenían diseños de 64 bits, sin embargo, el verdadero punto de inflexión para los consumidores llegó en 2003, cuando AMD lanzó un procesador de 64 bits para PC que era compatible con los procesadores x86 de Intel de 32 bits.

ARM vio la necesidad de procesadores de 64 bits de bajo consumo y comenzó a trabajar nuevos diseños mucho antes de anunciar su nueva ARMv8-Una arquitectura.

Avance rápido 10 años, las ventas de PC están en declive y la mayoría de los teléfonos inteligentes y las tabletas tienen procesadores multi-núcleo funcionando a una velocidad de entre 1 y 2 GHz. Sin embargo, estos dispositivos utilizan una arquitectura de 32 bits y no una arquitectura de 64 bits, como PCs y servidores modernos. Hasta ahora eso era perfectamente aceptable. Smartphones no estaban destinados a competir con los ordenadores en términos de rendimiento y los procesadores necesarios para ser eficiente de la energía para maximizar la duración de la batería.

Sin embargo, como dispositivos se han desarrollado y las nuevas tecnologías como el reconocimiento de voz, juegos en 3D realista y pantallas de alta resolución, se han convertido en la norma, el procesador humilde de 32 bits está lentamente siendo empujado hacia sus límites.

ARM vio la necesidad de procesadores de 64 bits de bajo consumo y comenzó a trabajar nuevos diseños mucho antes de anunciar su nueva ARMv8-A la arquitectura, la primera arquitectura ARM para incluir un conjunto de instrucciones de 64 bits. ARM también aprendió de los errores y aciertos de otros diseñadores de chips que se trasladaron a 64-bits. Nueva arquitectura de ARM de 64 bits es totalmente compatible con la arquitectura de 32 bits. Esto significa que si el procesador se ejecuta en un sistema operativo habilitado de 64 bits, el procesador es capaz de ejecutar sin modificar ARMv7 binarios de 32 bits. Para Android, esto significa que una vez que el kernel ha sido portado a 64-bits (y ya tiene gracias a Linaro) y luego el resto del sistema operativo, de las bibliotecas centrales de aplicaciones y juegos, puede ser de 32 bits o 64 bits.

linaro_plus_aarch64

El año pasado de Apple sacudió el mundo móvil, cuando anunció que las 5S iPhone sería utilizar el nuevo procesador de Apple A7 64 bits. El A7 incluye un Apple diseñado ARMv8 CPU de doble núcleo, llamado Ciclón. Utiliza dos cachés L1 de 64KB (uno para cada núcleo), una memoria caché de 1MB L2 compartida por ambos núcleos de CPU y un 4 MB de caché L3 para todo el SoC. Apple tiene una licencia de arquitectura ARM que significa que puede diseñar sus propios procesadores a partir de cero, pero con la condición de que estos procesadores deben ser compatibles ARM. ARM tiene una serie de conjuntos de pruebas que se ejecuta en contra de tales procesadores para asegurar la compatibilidad.

En los próximos meses vamos a ver a los procesadores basados ​​en ARM de 64 bits procedentes de empresas como Samsung, Qualcomm y MediaTek. Cuando se combina con el trabajo de 64 bits está haciendo en Android, está claro que vamos a ver los dispositivos de 64 bits que se ejecuta en una versión de 64 bits de Android en poco tiempo. Pero, ¿qué significan los procesadores de 64 bits a los desarrolladores y usuarios finales?

Beneficios de 64-bits de ARM

En el corazón de cada CPU es un conjunto de registros. Estas son las ranuras de almacenamiento internos que almacenan números y direcciones. Si desea agregar 5 a un número a continuación una forma de hacerlo sería decirle a la CPU para agregar 5 al contenido de un registro, por ejemplo registrar 7 (R7) y coloca el resultado en el R8. Lo mismo ocurre con otras operaciones como restar, multiplicar, turno y así sucesivamente.

La arquitectura ARMv8 tiene 31 registros generales, cada una de 64 bits de ancho.

Cuando el procesador está realizando operaciones complejas estas ranuras son usados ​​y re-utilizan constantemente. Si todos los registros están actualmente ocupadas entonces la única manera de proceder es almacenar uno de los registros en la memoria, utilice el registro para la siguiente tarea, y luego cargar el valor anterior de nuevo en la memoria. En términos humanos todo esto puede ocurrir a velocidades increíbles, pero para un procesador de esto es en realidad una secuencia de tiempo de los eventos y no es muy eficiente.

La arquitectura ARMv7 32 bits tenía 15 registros de propósito general, cada una de 32 bits de ancho. La arquitectura ARMv8 tiene 31 registros generales, cada una de 64 bits de ancho. Esto significa que el código optimizado debería ser capaz de utilizar los registros internos más a menudo que la memoria, y que estos registros puede contener números más grandes y direcciones. El resultado es que los procesadores de ARM de 64 bits pueden hacer las cosas más rápido.

En términos de eficiencia energética, el uso de registros de 64 bits no aumenta el consumo de energía. En algunos casos, el hecho de que un núcleo de 64 bits puede realizar ciertas operaciones más rápido significa que va a ser más eficientes energéticamente que un núcleo de 32 bits, simplemente porque hace el trabajo más rápido y luego se puede apagar.

Rendimiento ARMv8 AArch64 vs. AArch32 fig1

El otro aspecto de los procesadores de 64 bits es la dirige. En el mundo de los ordenadores personales y servidores de la barrera de 32 bits se habló principalmente sobre en términos de memoria accesible. Si querías más de 4GB de RAM, entonces usted necesita un procesador de 64 bits. Esto no es estrictamente cierto con procesadores ARM como algunos procesadores ARMv7 pueden acceder a más de 4 GB de memoria utilizando sus grandes extensiones de dirección física (LPAE). Con LPAE un procesador Cortex-A15 puede abordar 1024GB de la memoria. Desde 64 bits es de más de 2 millones de terabytes, no va a haber ningún smartphones que necesitan plena direccionamiento de 64 bits en cualquier momento pronto! Desde la restauración de espacio de direcciones que nunca se va a utilizar es inútil, la arquitectura ARMv8 tiene 48 bits de direccionamiento, que es de 256 terabytes!

OK, no espero ningún juego que necesita terabytes de memoria en el futuro inmediato, pero dar marcha atrás en el otro extremo de las tales capacidades de dirección de escala son muy importantes. Modernos juegos en 3D a menudo vienen con enormes cantidades de recursos (activos), estos activos pueden ser más fácilmente la memoria asignada cuando no es superior a 4 GB de espacio de direcciones. Esto acelerará juegos y permitir el acceso directo a los recursos de juegos multimedia.

ARM Mejoras de rendimiento AArch64

Más que los teléfonos inteligentes y las tabletas

Los beneficios de la computación de 64 bits de ARM no se limitan sólo a los teléfonos inteligentes y tabletas. Ecosistema de ARM es enorme y sus procesadores se encuentran en muchos tipos diferentes de dispositivos. Un área en procesadores ARM no han hecho mucho en carreteras está en el mercado de servidores. A medida que la era de la información continúa avanzando la cantidad de energía utilizada para alimentar todos los centros de datos está aumentando rápidamente. Cualquier reducción en el consumo de energía ahorra dinero y ahorra en recursos naturales. Poner los chips ARM de 64 bits en servidores tiene varios otros beneficios que sólo el consumo de energía reducido. Estos servidores son enfriados pasivamente lo que significa que se puede meter juntos sin la preocupación de sobrecalentamiento. También significa que menos dinero se gasta en refrigeración.

ARMv8

En términos de software de servidor, sistemas operativos como Linux ya son 64 bits y no hay apoyo para ARMv8 ya en el núcleo principal. Esto significa que los servidores que ejecutan Linux de 64 bits de ARM no serán difíciles de construir, o vender!

Chromebooks son otra área donde ARMv8 podría llegar a ser dominante. Hay ARMv7 Chromebooks ya y estoy seguro de que no pasará mucho tiempo antes de que veamos los ARMv8.

Envolver

La edad de la informática móvil de 64 bits está sobre nosotros, sobre todo gracias al brazo. Estos nuevos procesadores son más rápidos y se abren las plataformas móviles a toda una gama de nuevas posibilidades, a la vez que se mantiene fiel a la herencia de bajo consumo de ARM.

La ruta de migración de 32 bits a 64 bits es trillado y no debería ser ninguna sorpresa para los desarrolladores que van de 32 bits a 64 bits en ARM, independientemente del sistema operativo.

Socios de ARM estarán produciendo Cortex-A53 y procesadores Cortex-A57 en los próximos meses, algunos trabajarán en las configuraciones de doble núcleo y de cuatro núcleos más estándar, mientras que algunos trabajarán juntos en configuraciones Big.little. Y una cosa es segura, este es un momento emocionante para ARM y para todos los que utilizan los procesadores basados ​​en sus diseños.


» » ¿Por qué la arquitectura de ARM de 64 bits es bueno para los desarrolladores y bueno para los usuarios