Qual é a arquitetura big.LITTLE?
ARM é atualmente a arquitetura de CPU mais usada no mundo.
Pode não alimentar o seu computador, mas quase certamente alimenta o seu smartphone ou tablet. Além disso, a Apple agora usa a arquitetura ARM em seus designs de CPU internos.
A razão para isso é imediatamente clara.
CPUs ARM podem ter um desempenho incrível ao mesmo tempo em que conseguem manter o consumo de energia baixo. Tão baixo, na verdade, que cabem em smartphones finos com refrigeração passiva. Uma grande parte dessa eficiência de energia é atribuída à configuração do núcleo big.LITTLE, que é usada pela Apple, Qualcomm, MediaTek e outros fabricantes de CPU.
Mas o que exatamente é grande.LITTLE, e por que é tão importante?
O que é a arquitetura de CPU big.LITTLE da ARM?
A maneira como a maioria das CPUs modernas funcionam é que geralmente têm vários núcleos entre os quais o sistema divide as tarefas. Normalmente, essas CPUs de vários núcleos apresentam núcleos idênticos, capazes de lidar com as mesmas instruções e atingir as mesmas velocidades de clock. Todas as tarefas, grandes ou pequenas, são tratadas e distribuídas entre esses núcleos. Não é assim com CPUs ARM big.LITTLE.
Embora existam CPUs ARM com configurações de núcleo "convencionais", os designs de CPU baseados em big.LITTLE apresentam dois "clusters" de núcleo com núcleos projetados de maneira diferente para tarefas diferentes. Nesses tipos de CPUs, frequentemente veremos núcleos de "alto desempenho" projetados para realizar tarefas exigentes e núcleos "eficientes no consumo de energia", que lidam com tarefas mais convencionais. Esses núcleos de alto desempenho são geralmente de alta especificação e consomem muita energia e alcançam velocidades de clock notavelmente mais altas, enquanto os núcleos com eficiência de energia são mais fracos, têm menor freqüência e consomem muito menos energia.
Em um smartphone, essas "tarefas convencionais" incluem mensagens de texto, e-mail, chamadas, áudio e muito mais, que constituem a maioria das tarefas comuns que um smartphone deve fazer. Eles devem ser descarregados para os núcleos de baixo consumo de energia, enquanto os núcleos maiores de alto desempenho são deixados para outras tarefas mais exigentes, como jogos móveis e navegação na web. O sistema usa agendamento de tarefas global, ou multiprocessamento heterogêneo (HMP), para distribuir cargas de trabalho entre todos os diferentes núcleos de CPU.
A vantagem é dupla. Como as tarefas diárias são realizadas pelos núcleos menores, que consomem menos energia por natureza, essas CPUs normalmente consomem consideravelmente menos energia. Eles também têm melhor desempenho, pois as tarefas mais exigentes têm um cluster de núcleos de CPU só para eles. Você está obtendo uma CPU que tem melhor desempenho e também é mais eficiente em termos de energia.
Uma ideia revolucionária com uma história rochosa
Antes da chegada do big.LITTLE, todas as CPUs ARM multi-core apresentavam um arranjo de núcleos idênticos, assim como as CPUs x86. big.LITTLE foi apresentado pela primeira vez em outubro de 2011 e foi apresentado junto com dois novos designs principais, o Cortex-A7 e o Cortex-A15. Nesse sistema proposto, os dois projetos de núcleo poderiam ser emparelhados: o Cortex-A15 atuaria como o grande núcleo, enquanto o Cortex-A7 atuaria como o pequeno núcleo. A partir daí, os próximos projetos principais da ARM Holdings seriam todos compatíveis com o big.LITTLE, pois os fabricantes de silício consideravam adequado.
Um dos primeiros CPUs a lançar com este design de núcleo foi Exynos 5 Octa 5410 da Samsung, que alimentou o Samsung Galaxy S4 em 2013. Ele apresentava quatro núcleos Cortex-A7 com freqüência de 1,2 GHz e quatro núcleos Cortex-A15 com freqüência de 1,6 GHz para um total de 8 núcleos.
A forma como o agendador para essas CPUs big.LITTLE anteriores funcionava, no entanto, era muito desajeitada. Esses planejadores anteriores usavam "comutação em cluster" para tratar de clusters inteiros de uma vez. Se a carga em todo o processador for baixa, ele usará os núcleos de baixo consumo de energia, mas se aumentar, fará a transição de toda a carga de trabalho para os núcleos grandes. É definitivamente uma maneira de fazer isso, mas, em retrospecto, é bastante ineficiente.
Então, vimos o switcher no kernel. Aqui, grandes núcleos são emparelhados com pequenos núcleos e ambos são tratados pelo planejador como um único "núcleo virtual". Dependendo se um núcleo virtual recebeu uma carga baixa ou alta, ele alternará entre usar o núcleo pequeno e o grande.
A partir daí, acabamos com um multiprocessamento heterogêneo. Aqui, cada núcleo pode ser tratado individualmente. O planejador sabe quais núcleos são grandes e quais são pequenos e continua distribuindo cargas de trabalho a partir daí, distribuindo cargas mais baixas para os núcleos com eficiência de energia e cargas maiores para os de alto desempenho.
Como big.LITTLE mudou o cenário da CPU?
Os processadores ARM já tinham uma boa reputação por fornecer um equilíbrio decente entre desempenho e eficiência de energia. No entanto, nessas CPUs, um baixo consumo de energia é essencial. Afinal, esses processadores são usados em smartphones, e smartphones são pequenos, têm corpos finos e não apresentam nenhum tipo de resfriamento ativo, então as restrições térmicas são muito baixas e as CPUs precisam consumir energia para atendê-las.
big.LITTLE, porém, era enorme porque era capaz de melhorar o desempenho e a eficiência de energia simultaneamente. Hoje em dia, a maioria, senão todas, as CPUs ARM são baseadas em um design baseado em big.LITTLE, até mesmo os telefones Apple. Agora, a Intel está configurada para usar uma ou duas páginas dessa arquitetura em seus processadores x86 no futuro: os processadores Alder Lake introduzirão o conceito de computação heterogênea no cenário do PC.
As vantagens são simplesmente grandes demais para serem negadas.
O que é DynamIQ?
DynamIQ é uma nova arquitetura de núcleo anunciada pela ARM em maio de 2017 e serve como uma espécie de sucessor do big.LITTLE. O DynamIQ foi criado para levar o que big.LITTLE faz com a computação heterogênea um passo adiante, permitindo mais flexibilidade e melhor escalonamento.
Enquanto big.LITTLE estava limitado a apenas dois clusters, o DynamIQ aumenta o número máximo de núcleos por cluster para 8, permite projetos de vários núcleos em um único cluster e permite até 32 clusters por CPU. Além disso, o DynamIQ fornece regulação de tensão por núcleo mais precisa e melhores velocidades de cache L2. Resumindo, é muito semelhante a big.LITTLE e leva seu conceito básico adiante, exceto que agora permite mais flexibilidade em ter vários clusters e designs de núcleo.
Um exemplo de processador DynamIQ é o Snapdragon 888, o chip carro-chefe da Qualcomm para o ano de 2021. Em processadores big.LITTLE, é comum ver clusters de núcleos grandes e pequenos.
No entanto, no Snapdragon 888, há um "núcleo primário", um núcleo Cortex-X1 com clock de 2,84 GHz, depois um cluster mais típico de alto desempenho (agora um nível secundário), compreendendo três núcleos Cortex-A78 com clock de 2,42 GHz . Finalmente, os núcleos de eficiência energética são quatro núcleos Cortex-A55 com clock de 1,8 GHz. É uma configuração octa-core, mas usa três designs de core diferentes para lidar com tarefas diferentes.
Uma mudança completa na indústria
É seguro dizer que a introdução de big.LITTLE e o conceito de computação heterogênea mudou completamente o jogo da CPU. As CPUs ARM hoje em dia trocam lutas com os maiores processadores no lado x86 do lago, enquanto também mantêm o consumo de energia e a vida útil da bateria no mínimo, e tudo isso graças ao big.LITTLE e seu sucessor, DynamIQ.
Estamos muito entusiasmados com o futuro dos processadores ARM.