¿Qué es la arquitectura big.LITTLE?
ARM es actualmente la arquitectura de CPU más utilizada en el mundo.
Puede que no alimente su computadora, pero es casi seguro que alimente su teléfono inteligente o tableta. Además, Apple ahora usa la arquitectura ARM en sus diseños de CPU internos.
La razón de esto está clara de inmediato.
Las CPU ARM pueden tener un rendimiento asombroso al mismo tiempo que logran mantener bajo el consumo de energía. Tan bajo, de hecho, que pueden caber dentro de teléfonos inteligentes delgados con enfriamiento pasivo. Una gran parte de esa eficiencia energética se atribuye a la configuración del núcleo big.LITTLE, que utilizan Apple, Qualcomm, MediaTek y otros fabricantes de CPU.
Pero, ¿qué es exactamente big.LITTLE y por qué es tan importante?
¿Cuál es la arquitectura de CPU big.LITTLE de ARM?
La forma en que funcionan la mayoría de las CPU modernas es que generalmente tienen varios núcleos entre los que el sistema divide las tareas. Normalmente, estas CPU de varios núcleos cuentan con núcleos idénticos capaces de abordar las mismas instrucciones y alcanzar las mismas velocidades de reloj. Todas las tareas, grandes o pequeñas, se manejan y distribuyen entre estos núcleos. No es así con las CPU ARM big.LITTLE.
Si bien existen CPU ARM con configuraciones de núcleo "convencionales", los diseños de CPU basados en big.LITTLE presentan dos "clústeres" de núcleo con núcleos de diseño diferente para diferentes tareas. En este tipo de CPU, a menudo veremos núcleos de "alto rendimiento" diseñados para realizar tareas exigentes y núcleos "energéticamente eficientes", que manejan tareas más convencionales. Estos núcleos de alto rendimiento suelen tener altas especificaciones, consumen mucha energía y alcanzan velocidades de reloj marcadamente más altas, mientras que los núcleos de bajo consumo son más débiles, tienen menor frecuencia y consumen mucho menos energía.
En un teléfono inteligente, estas "tareas convencionales" incluyen mensajes de texto, correo electrónico, llamadas, audio y más, que comprenden la mayoría de las tareas comunes que debe realizar un teléfono inteligente. Estos están destinados a descargarse en los núcleos de bajo consumo, mientras que los núcleos más grandes de alto rendimiento se dejan para otras tareas más exigentes, como los juegos móviles y la navegación web. El sistema utiliza la programación de tareas global, o multiprocesamiento heterogéneo (HMP), para distribuir las cargas de trabajo entre todos los diferentes núcleos de CPU.
La ventaja es doble. Dado que las tareas diarias las manejan los núcleos más pequeños, que por naturaleza consumen menos energía, estas CPU suelen consumir considerablemente menos energía. También tienen un mejor rendimiento, ya que las tareas más exigentes tienen un grupo de núcleos de CPU para sí mismos. Obtendrá una CPU que funciona mejor y también es más eficiente en el consumo de energía.
Una idea revolucionaria con una historia difícil
Antes de la llegada de big.LITTLE, todas las CPU ARM de varios núcleos presentaban una disposición de núcleos idénticos, al igual que las CPU x86. big.LITTLE se introdujo por primera vez en octubre de 2011 y se presentó junto con dos nuevos diseños principales, el Cortex-A7 y el Cortex-A15. En ese sistema propuesto, ambos diseños de núcleo podrían emparejarse: el Cortex-A15 actuaría como el gran núcleo, mientras que el Cortex-A7 actuaría como el pequeño núcleo. A partir de ahí, los próximos diseños de núcleos de ARM Holdings serían compatibles con big.LITTLE como los fabricantes de silicio lo consideraran adecuado.
Una de las primeras CPU que se lanzó con este diseño de núcleo fue la Exynos 5 Octa 5410 de Samsung, que impulsó el Samsung Galaxy S4 en 2013. Presentaba cuatro núcleos Cortex-A7 con frecuencia de 1.2 GHz y cuatro núcleos Cortex-A15 con frecuencia de 1.6 GHz para un total de 8 núcleos.
Sin embargo, la forma en que funcionaba el planificador de estas grandes CPUs LITTLE anteriores era bastante torpe. Estos programadores anteriores usaban "conmutación agrupada" para abordar agrupaciones completas a la vez. Si la carga en todo el procesador es baja, usará los núcleos de bajo consumo, pero si aumenta, transferirá toda la carga de trabajo a los núcleos grandes. Definitivamente es una forma de hacerlo, pero en retrospectiva, fue bastante ineficiente.
Luego, vimos el conmutador en el kernel. Aquí, los núcleos grandes se emparejan con los núcleos pequeños, y el programador se encarga de ambos como un único "núcleo virtual". Dependiendo de si un núcleo virtual recibió una carga alta o baja, cambiará entre el uso del núcleo pequeño y el núcleo grande.
A partir de ahí, terminamos con un multiproceso heterogéneo. Aquí, cada núcleo se puede abordar de forma individual. El programador sabe qué núcleos son grandes y qué núcleos son pequeños y procede a distribuir las cargas de trabajo desde allí, distribuyendo cargas más bajas a los núcleos energéticamente eficientes y cargas más grandes a los de alto rendimiento.
¿Cómo ha cambiado big.LITTLE el panorama de la CPU?
Los procesadores ARM ya tenían una buena reputación por ofrecer un equilibrio decente entre rendimiento y eficiencia energética. Sin embargo, en estas CPU, un bajo consumo de energía es esencial. Después de todo, estos procesadores se utilizan en teléfonos inteligentes, y los teléfonos inteligentes son pequeños, tienen cuerpos delgados y no cuentan con ningún tipo de enfriamiento activo, por lo que las restricciones térmicas son muy bajas y las CPU necesitan consumir energía para satisfacerlas.
big.LITTLE, sin embargo, fue enorme porque pudo mejorar el rendimiento y la eficiencia energética simultáneamente. Hoy en día, la mayoría, si no todas, las CPU ARM se basan en un diseño basado en big.LITTLE, incluso en los teléfonos Apple. Ahora, Intel está listo para tomar una página o dos de esta arquitectura en sus procesadores x86 en el futuro: los procesadores Alder Lake introducirán el concepto de computación heterogénea en el panorama de las PC.
Las ventajas son simplemente demasiado grandes para negarlas.
¿Qué es DynamIQ?
DynamIQ es una nueva arquitectura central anunciada por ARM en mayo de 2017 y sirve como una especie de sucesor de big.LITTLE. DynamIQ está destinado a llevar lo que big.LITTLE hace con la computación heterogénea un paso más allá, lo que permite una mayor flexibilidad y una mejor escala.
Mientras que big.LITTLE se limitó a solo dos clústeres, DynamIQ aumenta el número máximo de núcleos por clúster a 8, permite diseños de múltiples núcleos en un solo clúster y permite hasta 32 clústeres por CPU. Además, DynamIQ proporciona una regulación de voltaje por núcleo más precisa y mejores velocidades de caché L2. En resumen, es bastante similar a big.LITTLE y lleva adelante su concepto básico, excepto que ahora permite más flexibilidad al tener múltiples clústeres y diseños centrales.
Un ejemplo de procesador DynamIQ es el Snapdragon 888, el chip insignia de Qualcomm para el año 2021. En los procesadores big.LITTLE, es común ver grupos de núcleos grandes y pequeños.
Sin embargo, en el Snapdragon 888, hay un "núcleo primario", un núcleo Cortex-X1 con frecuencia de 2.84 GHz, luego un clúster de alto rendimiento más típico (ahora un nivel secundario), que comprende tres núcleos Cortex-A78 con frecuencia de 2.42 GHz . Finalmente, los núcleos de bajo consumo son cuatro núcleos Cortex-A55 con frecuencia de reloj de 1.8 GHz. Es una configuración de ocho núcleos, pero utiliza tres diseños de núcleos diferentes destinados a abordar diferentes tareas.
Una reorganización completa de la industria
Es seguro decir que la introducción de big.LITTLE y el concepto de computación heterogénea ha cambiado completamente el juego de la CPU. Las CPU ARM hoy en día intercambian combates con los procesadores más grandes en el lado x86 del estanque, al tiempo que mantienen el consumo de energía y la duración de la batería al mínimo, y todo gracias a big.LITTLE y su sucesor, DynamIQ.
Estamos muy entusiasmados con el futuro de los procesadores ARM en el futuro.