stringtranslate.com

BRAZO GRANDE.PEQUEÑO

Cortex A57/A53 MPCore big.LITTLE chip de CPU

ARM big.LITTLE es una arquitectura informática heterogénea desarrollada por ARM Holdings , que combina núcleos de procesador más lentos y que ahorran relativamente batería ( LITTLE ) con núcleos relativamente más potentes y que consumen mucha energía ( big ). La intención es crear un procesador multinúcleo que pueda adaptarse mejor a las necesidades informáticas dinámicas y utilizar menos energía que el escalado de reloj por sí solo. El material de marketing de ARM promete hasta un 75% de ahorro en el uso de energía para algunas actividades. [1] Más comúnmente, las arquitecturas ARM big.LITTLE se utilizan para crear un sistema en chip multiprocesador (MPSoC).

En octubre de 2011, se anunció big.LITTLE junto con Cortex-A7 , que fue diseñado para ser arquitectónicamente compatible con Cortex-A15 . [2] En octubre de 2012, ARM anunció los núcleos Cortex-A53 y Cortex-A57 ( ARMv8-A ), que también son intercompatibles para permitir su uso en un chip big.LITTLE. [3] ARM anunció más tarde el Cortex-A12 en Computex 2013, seguido del Cortex-A17 en febrero de 2014. Tanto el Cortex-A12 como el Cortex-A17 también se pueden emparejar en una configuración big.LITTLE con el Cortex-A7. [4] [5]

El problema que big.LITTLE resuelve

Para una biblioteca determinada de lógica CMOS , la potencia activa aumenta a medida que la lógica cambia más por segundo, mientras que la fuga aumenta con la cantidad de transistores. Por lo tanto, las CPU diseñadas para funcionar rápidamente son diferentes de las CPU diseñadas para ahorrar energía. Cuando una CPU muy rápida y averiada está inactiva a velocidades muy bajas, una CPU con muchas menos fugas (menos transistores) podría hacer el mismo trabajo. Por ejemplo, podría utilizar una memoria caché más pequeña (menos transistores) o una microarquitectura más simple, como eliminar la ejecución fuera de orden . big.LITTLE es una forma de optimizar ambos casos: potencia y velocidad, en un mismo sistema.

En la práctica, un sistema big.LITTLE puede resultar sorprendentemente inflexible. Un problema es la cantidad y los tipos de dominios de energía y reloj que proporciona el IC. Es posible que no coincidan con las funciones estándar de administración de energía que ofrece un sistema operativo. Otra es que las CPU ya no tienen capacidades equivalentes y hacer coincidir la tarea de software correcta con la CPU correcta se vuelve más difícil. La mayoría de estos problemas se resuelven flexibilizando la electrónica y el software.

Migración de estado de ejecución

Hay tres formas [6] de organizar los diferentes núcleos del procesador en un diseño big.LITTLE, dependiendo del programador implementado en el kernel . [7]

Conmutación agrupada

Conmutación agrupada Big.Little

El enfoque del modelo agrupado es la primera y más sencilla implementación, que organiza el procesador en grupos de núcleos "grandes" o "PEQUEÑOS" de tamaño idéntico. El programador del sistema operativo sólo puede ver un clúster a la vez; cuando la carga en todo el procesador cambia entre baja y alta, el sistema pasa al otro clúster. Luego, todos los datos relevantes pasan a través de la caché L2 común , el clúster central activo se apaga y el otro se activa. Se utiliza una interconexión coherente de caché (CCI). Este modelo ha sido implementado en el Samsung Exynos 5 Octa (5410). [8]

Conmutador en el kernel (migración de CPU)

Conmutador en el kernel Big.Little

La migración de la CPU a través del conmutador interno (IKS) implica emparejar un núcleo "grande" con un núcleo "PEQUEÑO", posiblemente con muchos pares idénticos en un chip. Cada par funciona como un núcleo virtual , y sólo un núcleo real está (completamente) encendido y funcionando a la vez. El núcleo "grande" se utiliza cuando la demanda es alta y el núcleo "PEQUEÑO" se emplea cuando la demanda es baja. Cuando la demanda en el núcleo virtual cambia (entre alta y baja), el núcleo entrante se enciende, se transfiere el estado de ejecución , el saliente se apaga y el procesamiento continúa en el nuevo núcleo. El cambio se realiza a través del marco cpufreq . Se agregó una implementación completa de big.LITTLE IKS en Linux 3.11. big.LITTLE IKS es una mejora de la migración de clústeres (§ Conmutación en clústeres), la principal diferencia es que cada par es visible para el programador.

Una disposición más compleja implica una agrupación no simétrica de núcleos "grandes" y "PEQUEÑOS". Un solo chip podría tener uno o dos núcleos "grandes" y muchos más núcleos "PEQUEÑOS", o viceversa. Nvidia creó algo similar a esto con el 'núcleo complementario' de bajo consumo en su Tegra 3 System-on-Chip .

Multiprocesamiento heterogéneo (programación global de tareas)

Big.Little multiprocesamiento heterogéneo

El modelo de uso más potente de la arquitectura big.LITTLE es el multiprocesamiento heterogéneo (HMP), que permite el uso de todos los núcleos físicos al mismo tiempo. En este caso, los subprocesos con alta prioridad o intensidad computacional se pueden asignar a los núcleos "grandes", mientras que los subprocesos con menos prioridad o menos intensidad computacional, como las tareas en segundo plano, pueden ser realizados por los núcleos "PEQUEÑOS". [9]

Este modelo ha sido implementado en los Samsung Exynos comenzando con la serie Exynos 5 Octa (5420, 5422, 5430), [10] [11] y en los procesadores Apple de la serie A comenzando con el Apple A11 . [12]

Planificación

La disposición emparejada permite que la conmutación se realice de forma transparente al sistema operativo utilizando la función de escalado dinámico de voltaje y frecuencia (DVFS) existente. El soporte DVFS existente en el kernel (por ejemplo, cpufreqen Linux) simplemente verá una lista de frecuencias/voltajes y cambiará entre ellos como mejor le parezca, tal como lo hace en el hardware existente. Sin embargo, las ranuras de gama baja activarán el núcleo 'Pequeño' y las ranuras de gama alta activarán el núcleo 'Grande'. Esta es la primera solución proporcionada por el programador de CPU de "fecha límite" de Linux (que no debe confundirse con el programador de E/S con el mismo nombre) desde 2012. [13]

Alternativamente, todos los núcleos pueden estar expuestos al programador del kernel , que decidirá dónde se ejecuta cada proceso/hilo. Esto será necesario para la disposición no emparejada, pero posiblemente también podría usarse en los núcleos emparejados. Plantea problemas únicos para el programador del kernel, que, al menos con el hardware básico moderno, ha sido capaz de asumir que todos los núcleos en un sistema SMP son iguales en lugar de heterogéneos. Una incorporación de 2019 a Linux 5.0 llamada Energy Aware Scheduling es un ejemplo de un programador que considera los núcleos de manera diferente. [14] [15]

Ventajas de la programación global de tareas

Sucesor

En mayo de 2017, ARM anunció DynamIQ como el sucesor de big.LITTLE. [16] Se espera que DynamIQ permita una mayor flexibilidad y escalabilidad al diseñar procesadores multinúcleo. A diferencia de big.LITTLE, aumenta el número máximo de núcleos en un clúster a 8 para las CPU Armv8.2, 12 para Armv9 y 14 para Armv9.2 [17] y permite distintos diseños de núcleos dentro de un solo clúster, y hasta a 32 conglomerados en total. La tecnología también ofrece un control de voltaje por núcleo más detallado y velocidades de caché L2 más rápidas. Sin embargo, DynamIQ es incompatible con diseños ARM anteriores e inicialmente solo es compatible con los núcleos de CPU Cortex-A75 y Cortex-A55 y sus sucesores.

Referencias

  1. ^ "gran.PEQUEÑA tecnología". ARM.com. Archivado desde el original el 22 de octubre de 2012 . Consultado el 17 de octubre de 2012 .
  2. ^ "ARM presenta su procesador de aplicaciones con mayor eficiencia energética hasta la fecha; redefine la relación tradicional de potencia y rendimiento con el procesamiento big.LITTLE" (Comunicado de prensa). Participaciones ARM . 19 de octubre de 2011 . Consultado el 31 de octubre de 2012 .
  3. ^ "ARM lanza la serie Cortex-A50, los procesadores de 64 bits con mayor eficiencia energética del mundo" (Presione soltar). Participaciones ARM . Consultado el 31 de octubre de 2012 .
  4. ^ "El nuevo Cortex-A12 de ARM está listo para impulsar los teléfonos inteligentes de gama media de 200 dólares de 2014". El borde . Abril de 2014.
  5. ^ "ARM Cortex A17: un Cortex A12 evolucionado para la corriente principal en 2015". AnandTech. Abril de 2014.
  6. ^ Brian Jeff (18 de junio de 2013). "Diez cosas que debes saber sobre big.LITTLE". Participaciones ARM . Archivado desde el original el 10 de septiembre de 2013 . Consultado el 17 de septiembre de 2013 .
  7. ^ George Gray (10 de julio de 2013). "Actualización de software big.LITTLE". Linaro . Archivado desde el original el 4 de octubre de 2013 . Consultado el 17 de septiembre de 2013 .
  8. ^ Peter Clarke (6 de agosto de 2013). "Evaluación comparativa de la arquitectura pequeña y grande de ARM" . Consultado el 17 de septiembre de 2013 .
  9. ^ Procesamiento Big.LITTLE con ARM Cortex-A15 y Cortex-A7 (PDF) , ARM Holdings , septiembre de 2013, archivado desde el original (PDF) el 17 de abril de 2012 , recuperado 17 de septiembre 2013
  10. ^ Brian Klug (11 de septiembre de 2013). "Samsung anuncia compatibilidad con big.LITTLE MP en Exynos 5420". AnandTech . Consultado el 16 de septiembre de 2013 .
  11. ^ "Samsung presenta nuevos productos de su negocio System LSI en el Mobile World Congress". Samsung mañana. Archivado desde el original el 16 de marzo de 2014 . Consultado el 26 de febrero de 2013 .
  12. ^ "El futuro está aquí: iPhone X". Sala de prensa de Apple . Consultado el 25 de febrero de 2018 .
  13. ^ McKenney, Paul (12 de junio de 2012). "Una gran actualización del programador". LWN.net .
  14. ^ Perret, Quentin (25 de febrero de 2019). "Energy Aware Scheduling fusionada en Linux 5.0". comunidad.arm.com .
  15. ^ "Programación consciente de la energía". La documentación del kernel de Linux .
  16. ^ Humrick, Matt (29 de mayo de 2017). "Explorando las nuevas CPU de Dynamiq y ARM". Anandtech . Consultado el 10 de julio de 2017 .
  17. ^ Ltd, brazo. "DynamIQ – Arm®". Brazo | La Arquitectura para el Mundo Digital . Consultado el 18 de octubre de 2023 .

Otras lecturas

enlaces externos