¿Cuál es el beneficio de 64 bits A7 en iPhone


21

Estoy tratando de entender por qué ir a procesadores de 64 bits es tan importante en un iPhone. Entiendo que habrá el doble de registros para que el procesador pueda trabajar con el doble de datos, lo que debería aumentar el rendimiento.

Sin embargo, no veo muchos teléfonos con más de 4 GB de memoria en el corto plazo. Parece excesivo y afectaría negativamente la duración de la batería.

Otro problema que veo es que la mayoría de las variables ahora necesitan el doble de memoria. Esto creará problemas en un entorno móvil con pequeñas cantidades de memoria.

Creo que la gente de Apple es inteligente y probablemente tengan grandes razones para hacerlo, solo estoy tratando de entenderlos.

EDITAR

No sé mucho sobre las GPU, pero me dijeron que con registros de 64 bits se pueden cargar 2 píxeles en cada registro y se pueden realizar operaciones en ellos individualmente. ¿Hay alguna ventaja gráfica con respecto a 64 bits?


2
Como nota al margen: más potencia de procesamiento significa que los programadores pueden permitirse ser más vagos que antes (menos optimizaciones), una razón podría ser alentar a los desarrolladores de aplicaciones.
Vlad Preda

3
@ Chris.Stover - Hoy no hay una ventaja. Por supuesto, mañana una aplicación iOS podrá usar más memoria una vez que los teléfonos tengan más memoria. En solo 5 años, la capacidad de memoria del teléfono ha aumentado al menos un 200%. Si la tendencia continúa, podríamos ver teléfonos de 6GB a 8GB en muy poco tiempo. Apple también espera con ansias cuando hacen algo como esto. Todo se reduce al hecho de que ARM probablemente solo licenciará diseños de 64 bits en el futuro. Realmente se reduce al hecho de que el teléfono ahora tiene más registros, lo que realmente lo hace más rápido. La especificación de 64 bits no es importante hoy en día.
Ramhound

1
No es dos veces, es un orden de magnitud mayor. Los procesadores de 32 bits solo pueden abordar 4 GB de RAM como máximo. Los procesadores de 64 bits pueden abordar alrededor de 18 Exabytes, que es 3 órdenes de magnitud más alta.
Ingeniero mundial

77
no más límite de memoria de 640k
Reactgular

1
Se sospecha que el Nexus 5 tendrá 3 GB de RAM, y eso se lanzará el próximo mes. No creo que 4 GB + esté tan lejos como podría pensar.
Brendon

Respuestas:


25

En su mayoría, solo arroja un gran número porque impresiona a las masas. Los números más grandes son obviamente superiores, por lo que cualquier cosa con un procesador de 64 bits es claramente mejor que algo con un procesador de 32 bits. La nueva CPU es significativamente mejor que su predecesora, pero, al estilo de Apple, no van a intentar el marketing basado en especificaciones técnicas, solo le dirán que el A7 de 64 bits es más nuevo y mejor que el 32- bit A-6 . Mirando las especificaciones técnicas, sin embargo, ves:

  • 28nm vs 32nm chipworks
  • Procesador gráfico integrado mejorado
  • ARM v8 architecture v. ARM v7 (agrega funciones SIMD; salta de 13 a 31 registros de propósito general)
  • Memoria principal al morir (es decir, más rápida)

Más allá de eso, existe el hecho de que pueden comenzar a implementar hardware de 64 bits (compatible con versiones anteriores) hoy, antes de que nos encontremos con el 'muro de 4GB'. En unos pocos años, cuando 64 bits se convierta en una necesidad, todo el hardware lo admitirá y no habrá necesidad de manejar arquitecturas heredadas de 32 bits.


1
En realidad no puedo encontrar la fuente de la información en los artículos wiki. Otros sitios informan de doble núcleo a 1.5GHz. Una página wiki dice que el A7 es de 1.7 GHz octa-core. Consulte la siguiente: en.wikipedia.org/wiki/Apple_(system_on_chip) pdadb.net/index.php?m=pdacomparer&id1=4962&id2=4829
Chris.Stover

2
@ Chris.Stover solo muestra que Apple no vende hardware en especificaciones técnicas, solo quieren impulsar "¡Más nuevo y mejor!" con la próxima generación en lugar de decirte por qué el nuevo hardware es realmente mejor.
Sean McSomething

2
ARM v7 ya admite líneas de dirección de 40 bits (1 TB de RAM), aunque las aplicaciones en esa arquitectura de 32 bits solo pueden direccionar 4 GB cada una. Arm v8 actualmente admite aplicaciones de 32 bits, por lo que la compatibilidad con versiones anteriores no es un problema.
gbjbaanb

16

No hay un "muro de 4GB" en ARMv7, ya que muchos núcleos ARMv7 son compatibles con LPAE (Ampliación de dirección física grande), que es un concepto similar a PAE en x86, excepto que LPAE usa direccionamiento de 40 bits. Esto significa que el ARMv7 equipado con LPAE puede direccionar hasta 1TB de RAM .

También es importante mencionar que los próximos núcleos ARMv8, incluido A7, no utilizarán el direccionamiento físico de 64 bits . Lo más probable es que A7 use un direccionamiento físico de 40 o 44 bits. Más tarde, dando acceso a un máximo de 16 TB de RAM.

Por supuesto, ya sea con LPAE en ARMv7 o en modo AArch32 en ARMv8, las aplicaciones siguen siendo de 32 bits, por lo que la aplicación en sí solo puede acceder a 4 GB a la vez. Pero no creo que sea un problema en los dispositivos móviles en el corto plazo.

Le preocupa que las aplicaciones usen más memoria (punteros de 64 bits), pero ese no será el caso si las aplicaciones se ejecutan en modo de 32 bits (AArch32).

Por otro lado, ARMv8 proporciona otras mejoras arquitectónicas sobre ARMv7, que no están relacionadas con AArch64.

TL, DR: 64 bits de A7 es un truco de marketing. Incluso en sistemas con más de 4 GB de RAM, no ofrece una ventaja significativa sobre LPAE para aplicaciones de 32 bits. Y las aplicaciones de 64 bits no llegarán pronto.

Actualización: ha sido confirmado por el ejecutivo de marketing de Qualcomm (actualmente ex ejecutivo, ya que fue degradado por estos comentarios ).

"Sé que hay mucho ruido porque Apple hizo [64 bits] en su A7", dijo Anand Chandrasekher, vicepresidente senior y director de marketing de Qualcomm, en una entrevista. "Creo que están haciendo un truco de marketing. No hay ningún beneficio que un consumidor obtenga de eso".

Un beneficio de 64 bits es más capacidad de direccionamiento de memoria, pero eso no es relevante en los teléfonos inteligentes o tabletas actuales, dijo Chandrasekher. El iPhone 5s tiene solo 1 GB de DRAM.

"Predominantemente ... lo necesita para la capacidad de direccionamiento de la memoria más allá de 4 GB. Eso es todo. Realmente no lo necesita para el rendimiento, y el tipo de aplicaciones en las que se utilizan 64 bits en su mayoría son grandes, aplicaciones de clase de servidor", dijo Chandrasekher, quien anteriormente dirigió el grupo de plataformas móviles de Intel. ( fuente )


9

Centrarse únicamente en A7estar ARMv8allí es una ganancia obvia. ARM está reiniciando su conjunto de instrucciones y arquitectura.

Al ser compatible con versiones anteriores ARMv7, la próxima versión también afirma

  • Nuevo conjunto de instrucciones (A64)
  • Manejo de excepciones revisado para excepciones en estado AArch64
  • Menos registros bancarios y modos

Por lo tanto, ARMv8desafía las ARMv7diferencias arquitectónicas, proporcionando una interfaz más limpia para los desarrolladores de sistemas que probablemente eliminaría las características heredadas que conducen a una mejor plataforma. Lo que significa que debe esperar un mejor rendimiento / energía en lugar de un impacto negativo en la batería.

Ver más en ARM Architecture Preview .


+1. Gruber también tiene una buena descripción de las ventajas que ARMv8 en daringfireball.net/2013/09/the_iphone_5s_and_5c . (Desplácese hasta "The A7: ARMv8 and 64-Bit Architecture.")
Josh Kelley

4

La mayor ventaja sobre los procesadores de 32 bits para 64 bits es el movimiento de la memoria, y no el tamaño de la memoria. Si bien es cierto que 32 bits puede imponer un límite de 4 GB en el acceso directo. Hay muchas soluciones de hardware / software para superar ese límite.

Los procesadores de 64 bits simplemente pueden leer / escribir más datos en una sola operación del procesador. Permite que el código de ensamblaje realice operaciones en bloques de 8 bytes. Esto puede tener una gran ventaja de rendimiento sobre los procesadores de 32 bits. Los cálculos de punto flotante son más rápidos en 64 que en 32, y cuando la CPU usa registros duales puede operar en bloques de datos de 128 bits.

Los procesadores de 64 bits también tienen anchos de banda más amplios para la memoria física. Si tiene una cámara que graba 1080p y desea editar ese video. Realizar una operación en un archivo de video de 1GB simplemente será más rápido en 64 bits.

Todo lo anterior es cierto incluso si los Ghz del procesador siguen siendo los mismos.

Si 64 bits es tan bueno, ¿por qué no 128 bits?

Cuantos más bits agregue a la canalización de una CPU, más datos tendrá que mover la CPU. La CPU no puede reducir ese ancho de banda a 16 o 32. Por lo tanto, esto crea un problema para los desarrolladores de software. La mayoría del software (su calendario, notas, etc.) no depende de una gran cantidad de datos, y como resultado, 128 bits implicarían una gran cantidad de ancho de banda desperdiciado. Esto puede comenzar a obstaculizar el rendimiento y la duración de la batería. Por lo tanto, los fabricantes de CPU tienen que encontrar un equilibrio entre el ancho de banda y los requisitos de software.

Me sorprende que Apple haya lanzado un nuevo procesador 64 tan pronto en la vida de la informática móvil. Creo que su verdadera motivación para esto son los gráficos en 3D. Con un procesador de 64 bits, el teléfono puede mover más datos a la GPU rápidamente. Esto permitirá juegos 3D rápidos y gráficos más impresionantes. Realmente comenzará a ver las ventajas de 64 bits en 3D en tiempo real porque ese proceso depende en gran medida de los datos.


44
Las arquitecturas de CPU recientes / modernas son mucho más complicadas de lo que describe aquí. Las CPU mueven datos de la memoria en unidades llamadas a cache linestravés de buses de memoria que pueden tener 16 bits, 32 bits o probablemente 64 bits. Eso no necesariamente coincide con el tamaño de palabra nativo del arco de la CPU. Tiene razón, ese gran problema es mover datos, pero ese problema pertenece a algún otro dominio de hardware / arquitectura. FP se realiza en FPU, que en realidad son bastante rápidos y pueden funcionar con tamaños de precisión simples o dobles. Lo mismo para la decodificación de video o 3D en realidad, tienen sus propios hardwares dedicados que no son necesariamente de 64 bits.
auselen

44
Hay un documento excelente llamado what every programmer should know about memorygratis disponible para el desarrollador curioso akkadia.org/drepper/cpumemory.pdf
auselen

2

Facilita las cosas cuando se manejan grandes números. Grandes números son extremadamente importantes en criptografía (después de que PRISM tenga un teléfono móvil seguro se ha vuelto muy importante) y aplicaciones científicas.


1

Si bien es posible que no tenga problemas ahora si se queda con 32 bits, ciertamente habrá problemas en el futuro cercano. La lección aprendida del mundo del escritorio es que una transición será un proceso largo y doloroso. Por lo tanto, debe comenzar con esto más temprano que tarde.

Incluso me sorprendió que los teléfonos inteligentes no fueran de 64 bits desde el principio.


Probé esto convirtiendo mi aplicación actual a 32 bits. Tenía varias advertencias pero no errores. Afortunadamente, Apple tenía una solución sugerida para cada advertencia, así que simplemente hice clic en cada advertencia y presioné Intro para aceptar la solución. Tomó alrededor de 5 minutos y estaba funcionando en 64 bits. No hay dolor de cabeza no hay problemas ... hasta ahora
Chris.Stover

0

No creo que haya muchos beneficios técnicos. Primero, creo que tiene más sentido cuando se considera el iPad (tiene una batería más grande, por lo que puede soportar más memoria ram, mayor consumo de energía por parte del procesador, etc.). Segundo vistazo a los otros anuncios que están sucediendo en este momento. AMD acaba de anunciar que enviará procesadores ARM de 64 bits en 2014. Esto es básicamente Apple manteniendo el liderazgo en el mercado frente a lo que está llegando a las tabletas Android y Win8 de gama alta.


0

A corto plazo casi nada. En realidad, es un paso atrás de varias maneras. Hay tres ventajas principales que conozco.

  1. 64 bits es mucho mejor con números más grandes, lo que es una bendición para la criptografía. Lo cual puede ser una combinación interesante con el escáner de huellas digitales en el teléfono.
  2. De nuevo en el mismo sentido, las mejoras con 64 bits y grandes números ayudan con la representación física. Lo cual es útil teniendo en cuenta la cantidad de física utilizada en la interfaz de usuario de iOS7. Esto también beneficia a los desarrolladores de juegos, especialmente en algo con una pantalla más grande como el iPad.
  3. También agrega cierto grado de pruebas futuras para teléfonos actuales que usan esto.

0

Puntos de referencia.

Para algunas implementaciones capaces de modos arquitectónicos de 32 contra 64 bits con ISA x86, MIPS y ARM, el modo de 64 bits se comparó más rápido en ciertas aplicaciones importantes. Una razón clave es que los ISA de 64 bits son más nuevos y, por lo tanto, los arquitectos de ISA sabían más sobre las estadísticas de la aplicación y cómo optimizar para ese conjunto de comportamientos de la aplicación al definir el ISA. Y un nuevo procesador ISA debe estar preparado para el futuro contra las necesidades de memoria de la aplicación que están creciendo al ritmo de la ley de Moore y que ya han crecido más de un millón en el área de dispositivos móviles.

Por lo tanto, el nuevo arm64 ISA probablemente sea más rápido en cualquier código de rendimiento limitado que pueda desarrollar (tiene en mi código), así como también permite que los punteros C tontos aborden los vastos espacios de direcciones virtuales que probablemente se vuelvan comunes en una década o más (lo que es mucho menos tiempo que el ARM ISA original de 32 bits ya ha existido).

El rendimiento en su conjunto particular de aplicaciones (medir para confirmar) es una gran razón para preferir arm64.


-4

64 bits permite mucho más código compartido con las versiones de escritorio de OSX (que son todas de 64 bits)


Pero actualmente todas las aplicaciones ios deben mantener una compatibilidad de 32 bits, por lo que cualquier código de 64 bits debe convertirse a 32 bits de todos modos.
Bryan Chen

1
Pero son arquitectura completamente diferente (x86-64 vs. armv8) de todos modos. Cero ganancia de eso (el programa escrito de manera sensata en C / C ++ / ObjC funcionará en cualquier cantidad de bits, incluso si no es un requisito).
Jan Hudec
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.