
ARM big.LITTLE es una arquitectura de computación heterogénea desarrollada por Arm Holdings , que combina núcleos de procesador relativamente más lentos y con menor consumo de batería ( LITTLE ) con otros relativamente más potentes y con mayor consumo de energía ( big ). La intención es crear un procesador multinúcleo que pueda adaptarse mejor a las necesidades de computación dinámica y consumir menos energía que el simple escalado de reloj . El material de marketing de ARM promete hasta un 75 % de ahorro en el consumo de energía para algunas actividades. [ 1 ] Lo más común es que las arquitecturas ARM big.LITTLE se utilicen para crear un sistema en chip multiprocesador (MPSoC).
En octubre de 2011, se anunció big.LITTLE junto con el Cortex-A7 , que fue diseñado para ser arquitectónicamente compatible con el 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ó posteriormente el Cortex-A12 en Computex 2013, seguido del Cortex-A17 en febrero de 2014. Tanto el Cortex-A12 como el Cortex-A17 también pueden combinarse en una configuración big.LITTLE con el Cortex-A7. [ 4 ] [ 5 ]
Ventajas
Para una biblioteca de lógica CMOS dada , la potencia activa aumenta a medida que la lógica conmuta más veces por segundo, mientras que la fuga aumenta con el número de transistores. Cuando una CPU muy rápida con ejecución fuera de orden está inactiva a velocidades muy bajas, una CPU con mucha menos fuga (menos transistores) podría realizar el mismo trabajo. Por ejemplo, podría usar una caché de memoria más pequeña o una microarquitectura más simple, como eliminar la ejecución fuera de orden . big.LITTLE es una forma de optimizar tanto la eficiencia energética como la velocidad en el mismo sistema.
Desventajas
En la práctica, un sistema big.LITTLE puede resultar sorprendentemente inflexible. Un problema radica en la cantidad y el tipo de dominios de alimentación y reloj que proporciona el SoC, que pueden no coincidir con las funciones estándar de administración de energía que ofrece un sistema operativo. Otro problema es que las CPU ya no tienen capacidades equivalentes, lo que dificulta asignar la tarea de software adecuada a la CPU correcta. La mayoría de estos problemas se están solucionando mediante una mayor flexibilidad de la electrónica y el software.
migración del estado de ejecución
Hay tres formas [ 6 ] de organizar los diferentes núcleos del procesador en un diseño big.LITTLE, dependiendo del diseño real del SoC y del planificador implementado en el kernel . [ 7 ]
Conmutación en clúster

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 planificador del sistema operativo solo puede ver un grupo a la vez; cuando la carga del procesador cambia entre baja y alta, el sistema realiza la transición al otro grupo. Todos los datos relevantes se transfieren a través de la caché L2 común , el grupo de núcleos activo se apaga y se activa el otro. Se utiliza una interconexión coherente de caché (CCI). Este modelo se ha implementado en el Samsung Exynos 5 Octa (5410). [ 8 ]
Conmutador dentro del núcleo (migración de CPU)

La migración de CPU mediante el conmutador en el kernel (IKS) implica emparejar un núcleo "grande" con un núcleo "pequeño", pudiendo existir muchos pares idénticos en un mismo chip. Cada par opera como un núcleo virtual , y solo un núcleo real está completamente encendido y en funcionamiento a la vez. El núcleo "grande" se utiliza cuando la demanda es alta y el núcleo "pequeño" 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 su estado de ejecución , el saliente se apaga y el procesamiento continúa en el nuevo núcleo. El cambio se realiza mediante el marco cpufreq . Una implementación completa de big.LITTLE IKS se añadió en Linux 3.11. big.LITTLE IKS es una mejora de la migración en clúster ( § Conmutación en clúster ), cuya principal diferencia radica en que cada par es visible para el planificador.
Una disposición más compleja implica una agrupación asimé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 con el núcleo "complementario" de bajo consumo en su sistema en chip Tegra 3 .
Multiprocesamiento heterogéneo (planificación global de tareas)

El modelo de uso más potente de la arquitectura big.LITTLE es el procesamiento multihilo heterogéneo (HMP), que permite el uso simultáneo de todos los núcleos físicos. En este caso, los hilos con alta prioridad o intensidad computacional pueden asignarse a los núcleos "big", mientras que los hilos con menor prioridad o intensidad computacional, como las tareas en segundo plano, pueden ser ejecutados por los núcleos "LITTLE". [ 9 ] Este modelo tampoco requiere que el número de núcleos "big" y "LITTLE" coincida.
Este modelo se ha implementado en los procesadores Samsung Exynos a partir de la serie Exynos 5 Octa (5420, 5422, 5430), [ 10 ] [ 11 ] y en los procesadores Apple de la serie A a partir del Apple A11 . [ 12 ] Otro ejemplo es el SoC Rockchip RK3399 de seis núcleos .
Programación
La configuración en pares permite que el cambio se realice de forma transparente para el sistema operativo mediante la función de escalado dinámico de voltaje y frecuenciacpufreq (DVFS) existente. El soporte DVFS existente en el kernel (por ejemplo , en Linux) simplemente verá una lista de frecuencias/voltajes y cambiará entre ellos según lo considere oportuno, tal como lo hace en el hardware existente. Sin embargo, las ranuras de gama baja activarán el núcleo "Little" y las ranuras de gama alta activarán el núcleo "Big". Esta es la solución inicial proporcionada por el planificador de CPU "deadline" de Linux (que no debe confundirse con el planificador de E/S del mismo nombre) desde 2012. [ 13 ]
Alternativamente, todos los núcleos pueden estar expuestos al planificador del kernel , que decidirá dónde se ejecuta cada proceso/hilo. Esto será necesario para la configuración no emparejada, pero posiblemente también se pueda usar en los núcleos emparejados. Esto plantea problemas únicos para el planificador del kernel, que, al menos con el hardware comercial moderno, ha podido asumir que todos los núcleos en un sistema SMP son homogéneos en lugar de heterogéneos. Una adición de 2019 a Linux 5.0 llamada Planificación con Conciencia Energética es un ejemplo de un planificador que considera los núcleos de manera diferente. [ 14 ] [ 15 ]
Ventajas de la planificación global de tareas
- Control más preciso de las cargas de trabajo que se migran entre núcleos. Dado que el planificador migra directamente las tareas entre núcleos, se reduce la sobrecarga del kernel y, en consecuencia, se puede aumentar el ahorro de energía .
- La implementación en el planificador también hace que las decisiones de conmutación sean más rápidas que en el marco cpufreq implementado en IKS.
- La capacidad de admitir fácilmente clústeres no simétricos (por ejemplo, con 2 núcleos Cortex-A15 y 4 núcleos Cortex-A7).
- La capacidad de utilizar todos los núcleos simultáneamente para proporcionar un rendimiento máximo mejorado del SoC en comparación con IKS.
Sucesor
En mayo de 2017, ARM anunció DynamIQ como sucesor de big.LITTLE. [ 16 ] Se espera que DynamIQ permita 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 diseños de núcleos variables dentro de un solo clúster, y hasta 32 clústeres en total. La tecnología también ofrece un control de voltaje por núcleo más preciso y velocidades de caché L2 más rápidas.
Sin embargo, DynamIQ es incompatible con los diseños ARM anteriores y, en un principio, solo es compatible con los núcleos de CPU Cortex-A75 y Cortex-A55 y sus sucesores.
Referencias
- ↑ "tecnología big.LITTLE" . ARM.com. Archivado del original el 22 de octubre de 2012. Consultado el 17 de octubre de 2012 .
- ↑ "ARM presenta su procesador de aplicaciones más eficiente energéticamente hasta la fecha; redefine la relación tradicional entre potencia y rendimiento con el procesamiento big.LITTLE" (Comunicado de prensa). ARM Holdings . 19 de octubre de 2011. Consultado el 31 de octubre de 2012 .
- ↑ "ARM lanza la serie Cortex-A50, los procesadores de 64 bits más eficientes energéticamente del mundo" (Comunicado de prensa). ARM Holdings . Consultado el 31 de octubre de 2012 .
- ↑ "El nuevo Cortex-A12 de ARM está listo para impulsar los smartphones de gama media de 200 dólares de 2014" . The Verge . Abril de 2014.
- ↑ "ARM Cortex A17: Una evolución del Cortex A12 para el mercado general en 2015" . AnandTech. Abril de 2014.
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ↑ Brian Jeff (18 de junio de 2013). "Diez cosas que debes saber sobre big.LITTLE" . ARM Holdings . Archivado del original el 10 de septiembre de 2013. Consultado el 17 de septiembre de 2013 .
- ↑ George Grey (10 de julio de 2013). "Actualización de software big.LITTLE" . Linaro . Archivado del original el 4 de octubre de 2013. Recuperado el 17 de septiembre de 2013 .
- ↑ Peter Clarke (6 de agosto de 2013). "Evaluación comparativa de la arquitectura big-little de ARM" . Consultado el 17 de septiembre de 2013 .
- ↑ Procesamiento Big.LITTLE con ARM Cortex-A15 y Cortex-A7 (PDF) , ARM Holdings , septiembre de 2013, archivado del original (PDF) el 17 de abril de 2012 , consultado el 17 de septiembre de 2013.
- ↑ Brian Klug (11 de septiembre de 2013). "Samsung anuncia compatibilidad con big.LITTLE MP en Exynos 5420" . AnandTech . Archivado del original el 12 de septiembre de 2013. Consultado el 16 de septiembre de 2013 .
- ↑ "Samsung presenta nuevos productos de su división System LSI en el Mobile World Congress" . Samsung Tomorrow. Archivado del original el 16 de marzo de 2014. Consultado el 26 de febrero de 2013 .
- ↑ "El futuro ya está aquí: iPhone X" . Sala de prensa de Apple . Consultado el 25 de febrero de 2018 .
- ↑ McKenney, Paul (12 de junio de 2012). "Una actualización del planificador big.LITTLE" . LWN.net .
- ↑ Perret, Quentin (25 de febrero de 2019). "Planificación con conciencia energética integrada en Linux 5.0" . community.arm.com .
- ↑ "Planificación con conciencia energética" . La documentación del kernel de Linux .
- ↑ Humrick, Matt (29 de mayo de 2017). "Explorando Dynamiq y las nuevas CPU de ARM" . Anandtech. Archivado del original el 29 de mayo de 2017. Recuperado el 10 de julio de 2017 .
- ↑ Ltd, Arm. "DynamIQ – Arm®" . Arm | La arquitectura para el mundo digital . Consultado el 18 de octubre de 2023 .
Lecturas adicionales
- David Zinman (25 de enero de 2013). "Estado de big.LITTLE MP el 25 de enero de 2013" . LWN.net . Consultado el 25 de enero de 2013 .
- Nicolas Pitre (15 de febrero de 2012). "Soporte de Linux para ARM big.LITTLE" . LWN.net . Consultado el 18 de octubre de 2012 .
- Paul McKenney (12 de junio de 2012). "Una actualización del planificador big.LITTLE" . LWN.net . Consultado el 18 de octubre de 2012 .
- Jake Edge (5 de septiembre de 2012). "KS2012: ARM: Una actualización de big.LITTLE" . LWN.net . Consultado el 18 de octubre de 2012 .
- Jon Stokes (20 de octubre de 2011). "El nuevo Cortex A7 de ARM está hecho a medida para los superteléfonos Android" . Ars Technica . Consultado el 31 de octubre de 2012 .
- Andrew Cunningham (30 de octubre de 2012). "ARM adopta la arquitectura de 64 bits con los nuevos diseños Cortex-A53 y Cortex-A57" . Ars Technica . Consultado el 31 de octubre de 2012 .
Enlaces externos
- Procesamiento big.LITTLE
- Procesamiento big.LITTLE con ARM Cortex™-A15 y Cortex-A7 (PDF) (explicación técnica completa)
- Arquitectura ARM
- Computación heterogénea