El CPU Cortex-A72 de ARM añade potencia y rendimiento optimizaciones para el diseño A57 anterior. Aquí está una mirada en profundidad a los cambios en cada etapa de la tubería, de predicción mejor rama en unidades de ejecución de nueva generación.
Con la A57, BRAZO miró a ampliar el mercado de sus CPUs más allá de los dispositivos móviles y en el mercado de servidores de bajo consumo. El uso de una única arquitectura de CPU para los teléfonos inteligentes y servidores suena razonable, pero de acuerdo con ARM Mike Filippo, el arquitecto principal de la A72, cargas de trabajo móviles de gama alta puso mucha presión sobre los cachés, predicción de saltos, y el buffer de traducción lookaside (TLB) , que también son importantes para las cargas de trabajo del servidor. Cuando la A57 parecía sesgada hacia las aplicaciones de servidor en función de su consumo de energía, la A72 tiene un enfoque más equilibrado y que parece ser una mejor opción para móvil.
El Cortex-A72 es una evolución del Cortex-A57; la arquitectura de línea de base es muy similar. Sin embargo, ARM ajustado toda la tubería para una mejor potencia y rendimiento. Tal vez la mayor debilidad de la A57 fue su relativamente alto consumo de energía, especialmente en el nodo de 20nm, lo que limitó severamente el rendimiento sostenido de los dispositivos móviles, relegando a cortos, las cargas de trabajo a ráfagas y obligando SoC utilizar los núcleos de rendimiento inferiores Cortex-A53 para un uso prolongado .
ARM busca corregir este problema con la A72, que van y optimización de casi cada uno de los bloques lógicos de la A57 para reducir el consumo de energía. Por ejemplo, ARM fue capaz de darse cuenta de una reducción del 35-40% en el poder dinámico para la etapa de decodificador, y mediante el uso de una etiqueta de principios búsqueda IC, de 3 vías de instrucciones L1 de la A72 y 2 vías cachés de datos L1 también utilizan menos energía, similar a lo que cachés mapeadas directo usarían. Según ARM, todos los cambios realizados en el resultado A72 en aproximadamente un 15% de reducción en el consumo de energía en comparación con la A57 cuando ambos núcleos están ejecutando la misma carga de trabajo en la misma frecuencia y con el mismo proceso de 28nm. El A72 ve una reducción aún más significativa cuando se utiliza un proceso FinFET moderna, como FinFET 16nm de TSMC +, donde un núcleo A72 se mantiene dentro de un sobre de potencia 750 mW a 2,5 GHz, de acuerdo con ARM.
[Fuente de la imagen: Hiroshige Goto PC reloj]
Arquitectura general
Extracción de instrucción
El A72 ve mejoras en el rendimiento también, a partir de un algoritmo mejorado predicción de saltos mucho. Grupo de modelado rendimiento de ARM está actualizando continuamente las cargas de trabajo simulados alimentados al procesador, y éstas afectan el diseño del predictor rama, así como el resto de la CPU. Por ejemplo, sobre la base de estas cargas de trabajo, ARM encontró que las compensaciones de instrucción entre ramas se cierran a menudo juntos en la memoria. Esto le permitió hacer ciertas optimizaciones a su predictor dinámico, como permite el Target Buffer Branch (BTB) para mantener en cualquier lugar de 2000 a 4000 grandes ramas pequeñas ramas.Debido a que el código del mundo real tiende a incluir muchas instrucciones de salto, predicción de saltos y ejecución especulativa puede mejorar mucho el rendimiento, algo que por lo general no está probado por los tests sintéticos. Mejor predicción de saltos por lo general cuesta más poder, sin embargo, al menos en el front-end. Esto es, al menos, parcialmente compensado por un menor número de errores de predicción, el ahorro de energía en el back-end al evitar oleadas de tuberías y ciclos de reloj desperdiciados. Otra forma de ARM es el ahorro de energía es apagando el predictor sucursal en situaciones en las que es innecesario. Hay muchos bloques, por ejemplo, en las instrucciones entre ramas son mayores que la ventana de instrucciones de 16 bytes utiliza el predictor, así que tiene sentido para apagarlo porque el predictor, obviamente, no llegará a una sucursal en esa sección del código.
Decode / Rename
El resto del front-end está todavía en orden con un decodificador de 3 vías como la A57. Sin embargo, a diferencia de decodificador de la A57, que decodifica las instrucciones en micro-ops, la A72 decodifica instrucciones en macro-ops que pueden contener múltiples micro-ops. También es compatible con AArch64 instrucción-fusión en el decodificador. Estas macro-ops reciben "-finales agrietada" en múltiples micro-ops a nivel de despacho, que ahora es capaz de emitir hasta cinco micro-ops, frente a los tres en la A57. ARM cita a un 1,08 micro-ops por relación de la instrucción, en promedio, al ejecutar código común. La mejora de ancho de banda de front-end de la A72 ayuda a mantener las nuevas unidades de ejecución más baja latencia alimentados y también reduce el número de casos en los que el rendimiento cuellos de botella de front-end.
Despacho / Retirarse
Como se explicó anteriormente, la A72 ahora es capaz de despachar cinco micro-ops en las colas de emisión que se alimentan de las unidades de ejecución. Las colas de emisión siguen teniendo un total de 66 micro-ops como lo hicieron en la A57 y ocho entradas para cada tubería, excepto la cola de la unidad de ejecución rama que tiene diez entradas. Mientras profundidad de cola es el mismo, la A72 tiene un algoritmo de balanceo de carga tema-cola mejorada que elimina algunos casos adicionales de utilización no coincidentes de las unidades de FP / Avanzado SIMD.Unidad de despacho de The A72 también ve área significativa y reducciones de potencia mediante la reorganización de los archivos de registro de arquitectura y especulativos. ARM también redujo el número de registro de los puertos de lectura a través del intercambio de puerto. Esto es importante debido a que los puertos de lectura son muy sensibles al tiempo y requieren puertas más grandes para permitir que frecuencias de núcleo más altas, lo que provoca un efecto de segundo orden a la zona y el poder empujando otros componentes más lejos. En total, la unidad de despacho ve una reducción del 10% en un área sin efecto adverso en el rendimiento.
Unidades de Ejecución
Pasando a la de fondo fuera de orden, el A72 todavía puede emitir ocho micro-ops por ciclo como la A57, pero la latencia de ejecución se redujo significativamente debido a las unidades / Avanzado SIMD FP de próxima generación. Instrucciones de punto flotante ver hasta una reducción de latencia de 40% sobre el A57 (5 ciclos de 3-ciclo FMUL), y el nuevo Radix-16 FP divisor duplica el ancho de banda. Los cambios en las unidades de enteros son menos extensa, pero también hacen el cambio a un divisor Radix-16 entero (duplicando el ancho de banda sobre A57) y una unidad de CRC 1-ciclo.La reducción de la longitud de tuberías mejora el rendimiento al reducir la latencia directamente e indirectamente por aliviar la presión sobre la ventana fuera de orden. Así que, aunque la memoria temporal de reordenación de instrucciones se mantiene en 128 entradas como la A57, que ahora tiene más oportunidad de extraer paralelismo a nivel de instrucción (ILP).
Reenvío Ampliado de ciclo cero (todo número entero y algunas instrucciones de punto flotante) reduce aún más la latencia de ejecución. Esta técnica permite operaciones-dependientes, donde la salida de una instrucción es la entrada a la siguiente-a seguir directamente entre sí en la tubería sin un período de espera de uno o más de ciclo entre ellos. Esta es una optimización importante para la criptografía.
Load / Store
La unidad de carga / tienda también ve mejoras en el rendimiento y la potencia. Uno de los grandes cambios de A57 es un alejamiento de captadores previos L1 y L2 separadas a una prefetcher combinado más sofisticado que obtiene tanto de la L1 y caché L2. Esto mejora el ancho de banda al tiempo que reduce el poder. Hay optimizaciones de energía adicionales a la red de oleoductos y expedición hit-L1 también.La caché L2 ve optimizaciones significativas para cargas de trabajo mayor ancho de banda. Tareas de streaming de memoria ver el mayor beneficio, pero ARM dice de punto flotante y de enteros general de las cargas de trabajo también ven un aumento en el rendimiento. Un nuevo aumento de la política de sustitución de caché golpean bajas en la L2, que a su vez mejora el rendimiento y reduce la potencia total.
Otra optimización aumenta el paralelismo en el hardware mesa-walker para la unidad de gestión de memoria (MMU), responsable de la traducción de direcciones de memoria virtuales a direcciones físicas entre otras cosas. Junto con una L2 TLB menor latencia y mejora el rendimiento de los programas que se propagan a través de las páginas de datos de varios datos, como los navegadores web.
Pensamientos finales
En un alto nivel, la A72 se ve casi idéntica a la A57, pero en un nivel inferior hay un número significativo de cambios a lo largo de toda la tubería que aparecen para hacer la A72 una actualización decente. Los cambios más notables afectan el rendimiento son la predicción mejorada rama, mayor ancho de banda de despacho, unidades de ejecución menor latencia y mayor caché L2 de ancho de banda. Todas estas mejoras, y muchos más que no discutimos aquí, conducir a un mejor desempeño entre los 16 a 50% en una serie de tests sintéticos, según ARM. Mejoras de rendimiento del mundo real serán menos, por supuesto, pero A72 es sin duda una mejora con respecto a la A57, especialmente con cargas de trabajo de punto flotante.La A72 no es una obra de teatro rendimiento puro, sin embargo. ARM está apuntando a una eficiencia energética mucho mayor con esta arquitectura que con cualquier anterior núcleo de la CPU de gama alta. Está claro de la larga lista de optimizaciones discutidos anteriormente que el consumo de energía reduciendo era de suma importancia; muchos de los cambios son puramente centrado en el poder sin ganancia neta de rendimiento.
La reducción de potencia y área de la A72-logra una reducción de la superficie del núcleo 10% en general-obviamente tiene un efecto positivo en la vida de la batería y el coste, pero tiene un efecto secundario en el rendimiento también. Normalmente, lo que reduce la latencia en las unidades de ejecución ejerce presión sobre la frecuencia del núcleo alcanzable máximo debido a la mayor complejidad del circuito y estrictas ventanas de tiempo; Sin embargo, el poder y la zona de optimizaciones de la A72 en otro lugar, por no mencionar el paso a FinFET, en realidad permiten la A72 para llegar a una frecuencia ligeramente superior. La reducción de potencia también reduce la carga térmica, lo que permite un mayor rendimiento sostenido, algo que los A57 luchas con al 20nm.
El Cortex-A72 puede no ser un diseño revolucionario que catapulta por encima de la CPU de Apple Twister en el SoC A9 para un rendimiento de un solo núcleo o socava la A53 en el consumo de energía, pero es una actualización importante, sin embargo, abordar las cuestiones de la A57 al permitir mayor pico y rendimiento sostenido durante el uso de menos energía.
fuente "http://www.tomshardware.com"